在extjs中应用数字过滤器不起作用

时间:2014-10-16 15:40:11

标签: extjs extjs4.2

我正在尝试使用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)
    }
})

该构造看起来有点奇怪,但它是解决这个错误的黑客:

How do I apply filter in ExtJS

如果我的过滤器只是普通的旧字符串过滤器,这可以很好地工作,但是当我有一个数字过滤器时,它会抛出一条带有此消息的异常:

  

消息:"无法使用''运营商搜索< lt;'在19938年"堆:   (...)

此行引发错误:

aFilter.setValue(filter.data.value)

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

aFilter

enter image description here

过滤

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

例如过滤等于3的id

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