extjs分页的baseParam
我使用datefields和ComboBox进行选择以加载存储。当存储加载到网格中时,我有一个分页工具栏。到目前为止还不错 当用户单击下一页时,pagingtoolbar不会发送日期字段中的数据。我读了一些关于baseparams的文章,但这不起作用 我使用extjs4.1 这是我的商店:extjs分页的baseParam,extjs,pagination,extjs4.1,Extjs,Pagination,Extjs4.1,我使用datefields和ComboBox进行选择以加载存储。当存储加载到网格中时,我有一个分页工具栏。到目前为止还不错 当用户单击下一页时,pagingtoolbar不会发送日期字段中的数据。我读了一些关于baseparams的文章,但这不起作用 我使用extjs4.1 这是我的商店: NL.commListDetails = new Ext.data.Store({ model: 'stepDetails', pageSize: 20, loadMask:
NL.commListDetails = new Ext.data.Store({
model: 'stepDetails',
pageSize: 20,
loadMask: false,
sortOnLoad: true,
proxy: {
type: 'ajax',
url: detailURL,
startParam: '',
limitParam: '',
pageParam: '',
reader: {
type: 'json',
root: 'slaevents',
totalProperty: 'slaevents[0].totalCount'
}
},
baseParams: {fromDate:NL.startDate},
autoLoad: false
});
这是分页工具栏
bbar: Ext.create('Ext.PagingToolbar', {
store: NL.commListDetails,
displayInfo: true,
displayMsg: 'Displaying record {0} - {1} of {2}',
emptyMsg: "No records to display",
}),
我需要发送fromDate,endDate和分页。这两个版本都有NL.startDate和NL.endDate版本。单击下一页时如何发送此信息?存储区没有baseParams的配置。要发送额外的参数,应该使用ajax代理的extraParams配置
proxy: {
type: 'ajax',
....
extraParams: {fromDate:NL.startDate},
..
},
在创建存储时定义参数也意味着它们是静态的,所以它们赢了;如果修改日期字段或组合框,则不会更改
因此,解决方法是侦听组合框或日期字段上的更改事件,并重置额外的参数:
change: function(this,value){
NL.commListDetails.getProxy().getExtraParams().comboName = value;
}
编辑
我被纠正了。有一个baseParams,但它位于elementloader上,只有在直接调用load时才调用它,我认为使用loadPage的分页工具栏不是这样。这一点我可能错了,但我使用的是extraparams,它工作正常。感谢您的快速回复。当我这样做的时候,我得到了NL.commListDetails.getProxy().getExtraParams不是一个函数我错了,没有方法可以得到所有的参数,你可以用setExtraParam(comboName,value)替换它;