Extjs 查询事件代码:
searchUserInfo : function(button){
var grid = button.up('activityUserInfoList');
grid.store.proxy.on('exception', function(store, response, operation) {
showProxyError(operation);
});
grid.store.on('beforeload', function(store, options) {
var keyWordsObj = grid.down('textfield[name=keywords]');
var fieldCodeObj = grid.down('hiddenfield[name=fieldCodes]').getValue();
//var groupName = grid.down('textfield[name=groupName]').getValue();
var combo =grid.down('combo[name=groupUser]');
var groupName = combo.getRawValue();
var fieldCodes = fieldCodeObj.split(',');
var params = [];
for(var i=0;i<fieldCodes.length;i++){
var fieldCode = fieldCodes[i];
var value = grid.down('checkboxfield[name='+fieldCode+']').getValue();
if(value==true){
params.push(fieldCode);
}
}
var old_params = store.proxy.extraParams; //获取历史参数
var new_params = {
params : params.join(','),
keyWords : keyWordsObj.getValue(),
groupName : groupName
};
if(old_params.groupName!=new_params.groupName
|| old_params.params!= new_params.params
|| old_params.keyWords != new_params.keyWords){
Ext.apply(store.proxy.extraParams, new_params);
options.limit=store.pageSize;
options.page=1;
options.start=0;
store.currentPage=1;
}else{
Ext.apply(store.proxy.extraParams, new_params);
}
});
grid.store.load();
},
使用Ext.PagingToolbar分页的查询,store加载处理时要做查询参数判断,如果查询条件发生变化需要将 limit\page\currentPage重置。