ExtJS分页工具栏开始页面

时间:2010-11-03 20:11:41

标签: extjs paging toolbar

我有一个ExtJS GridPanel,底部有一个商店和一个分页工具栏。我可以使用以下方法通过浏览器手动设置起始页面:

www.someurl.com/page/7

这将正确加载第7页的数据存储。但是,分页工具栏不会更新商店中的页码(它仍然显示1)。我的印象是,通过更改商店的页面也会更改分页工具栏中的页面,但事实并非如此。以下是一些示例代码:

var _store = new Ext.data.Store({
  id          : 'store_id',
  remoteSort  : true,
  autoDestroy : true,
  restful     : true,
  proxy       : _proxy,
  reader      : _reader,
  writer      : _writer
});

var _pagingToolbar = new Ext.PagingToolbar({
  displayInfo    : true,
  pageSize       : 20,
  store          : _store
});

_I.grid = new Ext.ux.GridPanel({
 id             : _I.options.id+'_grid',
 title          : _I.options.title,
 store          : _store,
 bbar        : _pagingToolbar
});


_I.options.page = 7; //start store on page 7

_I.grid.render('somediv');
_store.load({params:{start:_I.options.page, limit:20, sort:'id', dir:'ASC'}});

由于起始页面设置为7,因此存储中加载的数据是正确的,但是,页面工具栏中的页面显示为2.我尝试手动设置页面

_pagingToolbar.changePage(20); // should set page to 20

我得到相同的结果,数据存储会加载正确的页面,但工具栏文本不会更改。订单错了吗?我也尝试在渲染网格之前加载商店,但无效,结果相同。

2 个答案:

答案 0 :(得分:1)

由于商店和传呼栏之间存在链接,您应该只需使用.changePage(n)方法更改页面,自动调整商店内容。您也不需要使用记录集更新对存储进行编码。另外,您是否100%确定商店正在显示第7页的正确记录?

答案 1 :(得分:0)

您从服务器端返回的分页信息是什么? PagingToolbar只从商店获取该信息。

您能否向您的读者展示显示分页数据的服务器响应部分?