【问题标题】:Applying numeric filter in extjs not working在 extjs 中应用数字过滤器不起作用
【发布时间】:2014-12-12 01:29:48
【问题描述】:

我正在尝试使用 extjs 中的 filterfeature 将数字过滤器应用于网格中的数字列。为此,我使用存储在网格中的 filterdata 在我的过滤器上设置一个值。

var filterData = tablePanel.filters.getFilterData();
Ext.Array.each(filterData, function (filter) {

    try {
        var aFilter = tablePanel.filters.filters.getByKey(filter.field)
        aFilter.setValue(filter.data.value)
    }
    catch (err) {
        Util.logError('err ' + err)
    }
})

这个结构看起来有点奇怪,但它是一个解决这个 bug 的 hack:

How do I apply filter in ExtJS

如果我的过滤器只是普通的旧字符串过滤器,这非常有效,但是当我有一个数字过滤器时,它会抛出异常并显示以下消息:

消息:“不能使用 'in' 运算符在 19938 中搜索 'lt'”堆栈: (...)

在这一行抛出错误:

aFilter.setValue(filter.data.value)

但有问题的对象看起来不错:

过滤器

过滤器

为什么我不能应用数字过滤器?

【问题讨论】:

    标签: extjs extjs4.2


    【解决方案1】:

    过滤数值。您必须提供比较运算符 (lt , gt, eq)

    例如过滤等于 3 的 id

    var f =  insidegrid.filters.getFilter('id');
    f.setValue({eq:3D});
    f.setActive;
    

    【讨论】:

      猜你喜欢
      • 2018-04-28
      • 2017-11-19
      • 1970-01-01
      • 2014-09-28
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      相关资源
      最近更新 更多