我正在尝试使用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
过滤
为什么我不能应用数字滤镜?
答案 0 :(得分:1)
过滤数值。你必须提供比较运算符 (lt,gt,eq)
例如过滤等于3的id
var f = insidegrid.filters.getFilter('id');
f.setValue({eq:3D});
f.setActive;