x11 Posted May 26, 2021 Share Posted May 26, 2021 Использую TunimDBListGrid + XTamplate. Часть кода уже есть. Назад unimToolButtom.ClientEvents.ExtEvents.tap: function tap(sender, e, eOpts) { var slider=fmmSearchResults.dbgRes.down('slider'); if(slider.getValue()>0){ slider.setValue(slider.getValue()-1); slider.fireEvent('change',slider); } } Вперед unimToolButtom.ClientEvents.ExtEvents.tap: function tap(sender, e, eOpts) { var slider=fmmSearchResults.dbgRes.down('slider'); if(slider.getValue()<slider.getMaxValue()){ slider.setValue(slider.getValue()+1); slider.fireEvent('change',slider); } } индикация unimDBListGrid1.ClientEvents.ExtEvents (Ext.data.Store.load): function store.load(sender, records, successful, operation, eOpts) { sender.grid.getDockedItems()[0].hide(); var slider=sender.grid.down('slider'); var lbl=fmmSearchResults.lblPaging; lbl.setHtml((slider.getValue()+1).toString()+'/'+(slider.getMaxValue()+1).toString()); } Так вот. Подскажите пожалуйста, как добавить еще несколько кнопок: перейти в начало, перейти в конец и перейти к конкретной странице? Спасибо. Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 Здравствуйте, Кажется на форуме было решение. Link to comment Share on other sites More sharing options...
x11 Posted May 26, 2021 Author Share Posted May 26, 2021 Искал, но не смог найти Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 1 minute ago, x11 said: Искал, но не смог найти Я имел в виду эти посты, тоже буду смотреть. Link to comment Share on other sites More sharing options...
x11 Posted May 26, 2021 Author Share Posted May 26, 2021 Ну там только next/prior page, а где там last/first page? Не найду, как по примеру выше повесить код на unimToolButtom.ClientEvents.ExtEvents.tap? Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 Думаю, там есть полезная информация, я проанализирую. Link to comment Share on other sites More sharing options...
x11 Posted May 26, 2021 Author Share Posted May 26, 2021 Просто моих знаний в extJS/UniGUI недостаточно, чтобы из разных примеров создать что-то рабочее Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 17 minutes ago, x11 said: Просто моих знаний в extJS/UniGUI недостаточно, чтобы из разных примеров создать что-то рабочее Вот примерные коды: procedure TMainmForm.UnimButton1Click(Sender: TObject); begin //lastPage with UnimDBListGrid1 do JSInterface.JSCode(#1'.getStore().loadPage(Math.ceil('#1'.getStore().totalCount/'#1'.getStore().pageSize));') end; procedure TMainmForm.UnimButton2Click(Sender: TObject); begin //firstPage with UnimDBListGrid1 do JSInterface.JSCode(#1'.getStore().loadPage(1);') end; procedure TMainmForm.UnimButton3Click(Sender: TObject); begin //specificPage with UnimDBListGrid1 do JSInterface.JSCode(#1'.getStore().loadPage(2);') end; 1 Link to comment Share on other sites More sharing options...
x11 Posted May 26, 2021 Author Share Posted May 26, 2021 Работает, но.... проблема в том, что тогда не выполняется код для отображения текущей страницы 1 hour ago, x11 said: индикация unimDBListGrid1.ClientEvents.ExtEvents (Ext.data.Store.load): Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 19 minutes ago, x11 said: но.... проблема в том, что тогда не выполняется код для отображения текущей страницы Простите, уточните пожалуйста. Link to comment Share on other sites More sharing options...
x11 Posted May 26, 2021 Author Share Posted May 26, 2021 Посмотрите первое сообщение. Там, при переходе по страницам, отображается текущая страница и всего страниц "2/373". Т.е. работает третий кусок кода unimDBListGrid1.ClientEvents.ExtEvents (Ext.data.Store.load) Хотелось бы, чтобы это код работал и при переходе на первую/последнюю страницу. Ну или переписать код перехода на первую/последнюю страницу по примеру, как в первом сообщении. Т.е. без delphi-кода. Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 1 hour ago, x11 said: индикация unimDBListGrid1.ClientEvents.ExtEvents (Ext.data.Store.load): function store.load(sender, records, successful, operation, eOpts) { sender.grid.getDockedItems()[0].hide(); var slider=sender.grid.down('slider'); var lbl=fmmSearchResults.lblPaging; lbl.setHtml((slider.getValue()+1).toString()+'/'+(slider.getMaxValue()+1).toString()); } Можете создать простой тестовый случай!? Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2021 Share Posted May 26, 2021 6 hours ago, x11 said: но.... проблема в том, что тогда не выполняется код для отображения текущей страницы Если я правильно понимаю, то попробуйте это решение: 1. DesignTime, UnimLabel1.Text = '' 2. procedure TMainmForm.UnimDBListGrid1AfterLoad(Sender: TUniCustomDBGrid); begin UnimLabel1.JSInterface.JSCode(#1'.setHtml('+ UnimDBListGrid1.JSName +'.getStore().currentPage+"/" + Math.ceil('+ UnimDBListGrid1.JSName +'.getStore().totalCount/'+ UnimDBListGrid1.JSName +'.getStore().pageSize));') end; 1 Link to comment Share on other sites More sharing options...
x11 Posted May 27, 2021 Author Share Posted May 27, 2021 Спасибо. Так тоже нормально. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now