【发布时间】:2015-09-09 20:00:00
【问题描述】:
是否可以远程过滤小于和大于?我知道如何在 php 和 mysql 中处理这个问题,但我不知道如何在 extjs 4 商店中设置这样的过滤器。
【问题讨论】:
是否可以远程过滤小于和大于?我知道如何在 php 和 mysql 中处理这个问题,但我不知道如何在 extjs 4 商店中设置这样的过滤器。
【问题讨论】:
4.1 开箱即用,没有。
您将需要覆盖负责的 provider 代理,因为目前只有属性-值对被提交 (responsible function)。另一点是Ext.util.Filter 根本不支持远程排序的任何比较器。所以你必须自己实现并确保商店不支持本地过滤(因为这不起作用)。
作为一种解决方法,您可以将较小/较大的值连同编码字符串一起提交,然后在服务器端减去它。这只会导致本地过滤器没有结果。
【讨论】:
我通常会覆盖 Ext.data.proxy.Server,像这样:
// ext store remote filter missing operator fix
Ext.override(Ext.data.proxy.Server, {encodeFilters: function(filters) {
var min = [],
length = filters.length,
i = 0;
for (; i < length; i++) {
if(filters[i].property && filters[i].value){
min[i] = {
operator: filters[i].operator,
property: filters[i].property,
value : filters[i].value
};
}
}
return this.applyEncoding(min);
}});
【讨论】: