Jump to content

мобильный пагинатор


x11

Recommended Posts

Использую 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());

}

 

Так вот. Подскажите пожалуйста, как добавить еще несколько кнопок: перейти в начало, перейти в конец и перейти к конкретной странице?

Спасибо.

 

 

Screenshot_4.jpg

Link to comment
Share on other sites

  • x11 changed the title to мобильный пагинатор

Ну там только next/prior page, а где там last/first page?

 

Не найду, как по примеру выше повесить код на unimToolButtom.ClientEvents.ExtEvents.tap?

Link to comment
Share on other sites

Просто моих знаний в extJS/UniGUI недостаточно, чтобы из разных примеров создать что-то рабочее :(

Link to comment
Share on other sites

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;

 

  • Like 1
Link to comment
Share on other sites

 

Работает, но.... проблема в том, что тогда не выполняется код для отображения текущей страницы

1 hour ago, x11 said:

индикация unimDBListGrid1.ClientEvents.ExtEvents (Ext.data.Store.load):

 

Link to comment
Share on other sites

19 minutes ago, x11 said:

но.... проблема в том, что тогда не выполняется код для отображения текущей страницы

Простите, уточните пожалуйста.

Link to comment
Share on other sites

Посмотрите первое сообщение. Там, при переходе по страницам, отображается текущая страница и всего страниц "2/373".

Т.е. работает третий кусок кода unimDBListGrid1.ClientEvents.ExtEvents (Ext.data.Store.load)

Хотелось бы, чтобы это код работал и при переходе на первую/последнюю страницу.

Ну или переписать код перехода на первую/последнюю страницу по примеру, как в первом сообщении. Т.е. без delphi-кода.

Link to comment
Share on other sites

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

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;

 

  • Like 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...