Extjs 7.4.0 -筛选器运算符的远程筛选问题

9o685dep  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(159)

我正在使用gridfilterbar进行远程过滤,但是任何过滤器类型和任何过滤器运算符都有问题。为服务调用编码的过滤器参数总是有一个默认运算符,并且不能识别不同的运算符。我的过滤器配置如下:

filter: {
    type: 'list',
    operators: ['=', '!='],
    options:  [0, 1, 2]
},

我对这个问题的解决方案是覆盖Ext.data.proxy.Server,并对encodeFilters函数进行快速修复。我检查遍历过滤器的循环内部,并手动更改操作符:

for (i = 0; i < length; i++) {
        if(filters[i].config.operator != filters[i]._operator){
            filters[i].config.operator = filters[i]._operator
        }
        encode |= filters[i].serializeTo(out);
    }

我想知道我是否错过了什么,或者这是一个需要修复的bug。

xtupzzrd

xtupzzrd1#

opperator代替了opperators,在这个Fiddle中为我工作:

columns: [{
            text: 'id',
            dataIndex: 'id',
            filter: {
                type: 'list',
                operator: ['!=='],
                options:  [0, 1, 2]
            }
        }, {
            text: 'name',
            dataIndex: 'name',
            filter: 'string',
            flex: 1
        }]

你的例子没有显示几个操作符的使用。总的来说,我想你必须写你自己的自定义过滤器(例如,数字,列表,...),因为这只适用于远程过滤。我不会覆盖服务器代理,但创建一个新的过滤器。
也许这个Fiddle可以帮助你为你的工作找到一个合适的解决方案。它有一个过滤器的自定义存储,可以代替你的覆盖:小提琴2

相关问题