关于gridfilters的用法,请参考我的上一篇文章: Extjs-GridFilters的使用与发现和PagingToolbar共用的bug
这里要重写它的两个方法是因为我觉得传递到server的参数形式对php来说比较合适,但用于java,struts的时候,就比
较别扭了,buildQuery是生成查询参数和值的方法, cleanParams 也必须重写,不然在取消息这些查询条件的时候,
就没法子实现了,但是一般都用到了 分页,所以又要保留PagingToolbar的两个分页参数.
filter[0][data][value] 55
filter[0][data][type] numeric
filter[0][field] id
filter[0][data][comparison] eq
var filters = new Ext.grid.GridFilters({
//autoReload: false,
filters:[
{type: 'numeric', dataIndex: 'id'},
{type: 'string', dataIndex: 'name'},
{type: 'date', dataIndex: 'date1'},
{type: 'string', dataIndex: 'occupation'}
],
cleanParams: function(p) { // 清除参数的方法,要保留PagingToolbar分页用的两个参数
//var regex = new RegExp("^" + this.paramPrefix + "\[[0-9]+\]");
for(var key in p) {
if( key != 'start' && key != 'limit' )
//if(regex.test(key)) {
delete p[key];
//}
}
}
buildQuery: function(filters) { // 重写生成query的安符串,
var p = {};
for(var i=0, len=filters.length; i<len; i++) {
var f = filters[i];
var pf = [f.field, '[', i, ']'].join('');
for(var key in f.data) {
var pv = [f.field + '_' + key, '[', i, ']'].join('');
p[pv] = f.data[key];
}
}
return p;
}
});




















