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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...