【问题标题】:Extjs 4 remote filter store smaller (<) bigger (>) thanExtjs 4远程过滤器存储小于(<)大于(>)比
【发布时间】:2015-09-09 20:00:00
【问题描述】:

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

【问题讨论】:

    标签: extjs extjs4


    【解决方案1】:

    4.1 开箱即用,没有。

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

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

    【讨论】:

    • 有用的功能,但失望的是它还没有被 extjs 实现 :( 但是谢谢!
    • @Manuel 实现并不复杂...您只需要覆盖上述方法并将过滤器扩展一个值,如果新函数已定义则该值将被定义,如果未定义则跳过
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      相关资源
      最近更新 更多