【发布时间】: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)
但有问题的对象看起来不错:
过滤器
过滤器
为什么我不能应用数字过滤器?
【问题讨论】: