界面结构:左侧是分类树结构,右侧是表格,点击左侧类别,根据类别ID,去刷新右侧Grid的记录
当第一次点击左侧分类节点时,因为是通过代码去请求数据,传递参数catalogid,一切正常,处理catalogid以外,ext还会会自动传递start和limit,start为起始索引,limit是每页显示数量,类似如下请求
http://xxxxx/?catalogid=3&start=0&limit=5
treePanel是定义的 Ext.tree.Panel,下面是触发选择事件
treePanel.getSelectionModel().on('select', function(selModel, record){ var filestore = Ext.getCmp('filegrid').getStore(); filestore.baseParams.catalogid=record.data.id; filestore.currentPage = 1; filestore.load({ params:{ catalogid:record.data.id } }) });通过上面代码去请求,没有问题,请求到第一页数据,当点击分页工具栏的下一页按钮时,发现传递给请求页面的参数catalogid没有了,类似如下
http://xxxxx/?start=0&limit=5,解决方法是在store的beforload时,写入catalogid参数
var store = Ext.create('Ext.data.Store', { baseParams:{catalogid:0}, pageSize:countPerPage, fields: ["id","filecode","filename"], proxy: { type: 'ajax', url: '././FileListServlet', reader:{ type:'json', root:'items', totalProperty:'total' } } }); store.on('beforeload', function(s) { var params = s.getProxy().extraParams; Ext.apply(params,{catalogid:s.baseParams.catalogid}); });