1

是否可以远程过滤小于和大于?我知道如何在 php 和 mysql 中处理这个问题,但我不知道如何在 extjs 4 商店中设置这样的过滤器。

4

2 回答 2

1

开箱即用 4.1,没有。

您将需要为此原因覆盖负责的提供者代理,目前只有属性-值对被提交(负责函数)。另一点是Ext.util.Filter根本不支持远程排序的任何比较器。所以你必须自己实现并确保商店不支持本地过滤(因为那不起作用)。

作为一种解决方法,您可以将较小/较大的值连同作为编码字符串的值一起提交,然后在服务器端减去它。这只会导致本地过滤器没有结果。

于 2012-08-31T14:50:18.687 回答
0

我通常会覆盖 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);
}});

于 2015-09-09T12:00:00.597 回答