我有一个基本网格,我已经为列添加了一些过滤器。我在构造函数中添加了它们,因为其中一些使用了商店
constructor: function(config) {
Ext.apply(this, {
features : [{
ftype: 'filters',
encode: true,
local: false,
filters: [{
type: 'string',
dataIndex: 'name'
},{
type: 'string',
dataIndex: 'priority'
},{
type: 'list',
store: Ext.getStore('adminCategory'),
dataIndex: 'adminOrg',
labelField: 'displayName'
},{
type: 'list',
store: Ext.getStore('adminClientList'),
dataIndex: 'client',
labelField: 'name',
listeners: {
activate: function(obj, eOpts) {
console.log(obj);
}
}
}]
}]
});
this.callParent(arguments);
菜单项加载得很好,但是当过滤器激活并开始加载商店时,过滤器参数不存在,因此它们不会提交给服务器。
我检查了商店上的beforeload
事件,filters
数组为空(在操作对象中也存储了所有分拣机信息)。
答案 0 :(得分:1)
filtersfeature
不会将过滤器信息存储在与默认过滤器相同的位置。我不知道为什么,但事实并非如此。在同一个对象中找到filters
和sorters
数组,查看params
属性,params
中应该有一个名为filter
的属性。那将包含过滤器。默认情况下,我相信所有过滤器都被编码为json字符串,因此如果您想将它们作为数组,那么您必须使用Ext.decode
。