先上核心代码:
/*
* 创建列表数据源
*/
createStore:function(){
var me = this;
var store = Ext.create('Ext.data.JsonStore', {
autoDestroy: true,
pageSize: me.pageSize,
model: me.winConfigs.module,
proxy: {
type: 'ajax',
url: me.winConfigs.loadUrl,
reader: {
type: 'json',
root: 'items',
idProperty: me.winConfigs.idfield,
totalProperty: 'total'
}
},
remoteSort: true,
sorters: [{
property: me.winConfigs.idfield,
direction: 'DESC'
}]
});
return store;
},
//添加查询条件
store.on('beforeload', function (store, options) {
var new_params = me.getSearchParams();
Ext.apply(store.proxy.extraParams, new_params);
});
/**
* 返回查询参数
*/
getSearchParams: function() {
return {
'transBill.billNo': Ext.getCmp('param_billno').getValue(),
'startDate': Ext.getCmp('param_from_date').getValue(),
'endDate': Ext.getCmp('param_to_date').getValue()
};
},
me.grid.getStore().load();
原理很简单,将搜索条件放在store的baseParams中,每次加载都赋值。
只是需要强制赋值,因为默认的pagetoolbar只会把start、limit、page、sort、dir传递给store。
(这个问题花费了接近一个小时来搞定。)