我正在使用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。
1条答案
按热度按时间xtupzzrd1#
opperator
代替了opperators
,在这个Fiddle中为我工作:你的例子没有显示几个操作符的使用。总的来说,我想你必须写你自己的自定义过滤器(例如,数字,列表,...),因为这只适用于远程过滤。我不会覆盖服务器代理,但创建一个新的过滤器。
也许这个Fiddle可以帮助你为你的工作找到一个合适的解决方案。它有一个过滤器的自定义存储,可以代替你的覆盖:小提琴2