Extjs4 网格筛选器未提交参数值

Extjs4 网格筛选器未提交参数值,extjs4,extjs4.2,Extjs4,Extjs4.2,我有一个基本的网格,并且在列中添加了一些过滤器。我像这样将它们添加到构造函数中,因为其中一些使用存储 constructor: function(config) { Ext.apply(this, { features : [{ ftype: 'filters', encode: true, local: false, filte

我有一个基本的网格,并且在列中添加了一些过滤器。我像这样将它们添加到构造函数中,因为其中一些使用存储

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

过滤器功能不会将过滤器信息存储在默认过滤器所在的位置。我不知道为什么,但是没有。在找到
过滤器
分拣机
阵列的同一对象中,查看
参数
属性,在
参数
中应该有一个名为
过滤器
的属性。它将包含过滤器。默认情况下,我相信所有过滤器都编码为json字符串,因此如果您希望将它们作为数组,则必须使用
Ext.decode

是的,就是这样。我还检查了
params
属性。里面没有关于过滤器的内容。给你。想知道这是否是版本4.2.1中的一个新错误:
params:Object limit:25页:1排序:“[{”property:“priority”,“direction:“ASC”}]”开始:0
4.2.1的相关代码看起来与4.2相同。您确定在执行服务器调用时筛选器处于活动状态吗?可能它正在向下发送到服务器。您说您正在检查商店中的“加载前事件”。
FiltersFeature
中有一个用于该事件的处理程序,即在填充过滤器数据时。您可能是在
FiltersFeature
中调用
onBeforeLoad
方法之前捕获它的?这里是源代码,顺便说一句。您可以从ExtJS文档访问它。我正在Chrome开发工具中检查请求,并在PHP服务器端设置了断点(测试localhost),因此确认没有发送筛选器参数。但是您是正确的,
FiltersFeature
中的
onBeforeLoad
在存储事件之后被调用。我第一次看到我的过滤器出现在
params
字段中。由于某些原因,
FiltersFeature
中的
onBeforeLoad
被调用三次,而存储的
beforeload
只被调用一次。第二次和第三次调用时,参数是空的。嗯,这很奇怪。我不能肯定我能帮你更多。我知道,
FiltersFeature
做了一些非常奇怪和低效的事情,以至于我重写了大部分内容以改进我的应用程序(包括序列化要发送到服务器的过滤器数据的部分)。如果你能找到一把小提琴来重现这个错误,我可以试着调整它,看看我是否能找到它。