store.on('beforeload', function (store, options) {
var new_params = { name: Ext.getCmp('search').getValue() };
Ext.apply(store.proxy.extraParams, new_params);
// alert('beforeload');
});
在Ext 3 中的
store.on('beforeload', function () {
store.baseParams = {
name: '5555555',
intss: '666666666'
};
});
已经不适合与ext6 系列了。
下面给出完整的代码。原理很简单,将搜索条件放在store的baseParams中,每次加载都赋值。
只是需要强制赋值,因为默认的pagetoolbar只会把start、limit、page、sort、dir传递给store。
<span style="color:#000000;"> store.on('beforeload', function (store, options) {
var new_params = { nameId : Ext.getCmp('nameId').getValue() };
Ext.apply(store.proxy.extraParams, new_params);
alert("beforeload");
});
store.load();</span>
特别注意:
使用这种方法传参时,Store的请求方式必须为POST,否则会出现中文乱码。
解决方法:
设置Store请求方式位POST
var store = Ext.create('Ext.data.Store', {
// autoLoad : true,
pageSize : main.gridPageSize,
fields : ['id', 'text', 'description', 'url', 'leaf'],
proxy : new Ext.data.HttpProxy({
type : 'ajax',
url : '../../../dayReportController/test.do',
actionMethods : {
read : 'POST' // Store设置请求的方法,与Ajax请求有区别
},
reader : new Ext.data.JsonReader({
type : 'json',
rootProperty : 'data',// 数据(不配置的话无法接收数据),返回的key为data
totalProperty : 'totalRecord'// 记录数(不配置的话无法翻页),返回的key为totalRecord
})
})
});