在store的beforeload事件里面重写store.proxy.extraParams,添加新参数
就不必每次都手动的添加参数
store.on('beforeload', function (store, options) {
var new_params = { name: Ext.getCmp('search').getValue() };
Ext.apply(store.proxy.extraParams, new_params);
// alert('beforeload');
});
在Extjs3 中的
store.on('beforeload', function () {
store.baseParams = {
name: '5555555',
intss: '666666666'
};
});
下面给出完整的代码。原理很简单,将搜索条件放在store的baseParams中,每次加载都赋值。
只是需要强制赋值,因为默认的pagetoolbar只会把start、limit、page、sort、dir传递给store。
var store = new Ext.data.Store({ pageSize: GridPageSize, model: 'Master', autoLoad: false, proxy: { type: 'ajax', url: '/master/GetMasterData', reader: { type: 'json', root: 'data', totalProperty: 'totalCount' } }, fields: [ { name: 'Id' }, { name: 'Master_Name' } //排序 sorters: [{ property: 'Master_Name', direction: 'DESC' }] }); store.on('beforeload', function (store, options) { var new_params = { name: Ext.getCmp('search').getValue() }; Ext.apply(store.proxy.extraParams, new_params); // alert('beforeload'); }); store.load({ params: { start: 0, limit: GridPageSize } })