2010-11-03 99 views
0

我有一个ExtJS GridPanel,底部有一个存储和一个分页工具栏。我可以通过浏览器手动设置开始页面:ExtJS分页工具栏开始页面

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 

我得到同样的结果,数据存储加载了正确的页面,但是在工具栏的文本不会改变。订单是否错误?我也尝试在网格呈现之前加载商店,但效果不佳。

回答

0

你从服务器端返回什么分页信息? PagingToolbar只是从商店获取这些信息。

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

1

随着存储和寻呼酒吧inhernatly链接,你应该简单地能够使用.changePage(n)方法来更改页面,并自动调整商店的内容。您不应该也需要使用记录集更新对商店进行编码。另外,你是否100%确定商店正在显示页面'7'的正确记录?