网格过滤器不提交参数值

时间:2014-04-06 19:18:30

标签: extjs4 extjs4.2

我有一个基本网格,我已经为列添加了一些过滤器。我在构造函数中添加了它们,因为其中一些使用了商店

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数组为空(在操作对象中也存储了所有分拣机信息)。

1 个答案:

答案 0 :(得分:1)

filtersfeature不会将过滤器信息存储在与默认过滤器相同的位置。我不知道为什么,但事实并非如此。在同一个对象中找到filterssorters数组,查看params属性,params中应该有一个名为filter的属性。那将包含过滤器。默认情况下,我相信所有过滤器都被编码为json字符串,因此如果您想将它们作为数组,那么您必须使用Ext.decode