如何从 extJS 中的存储中过滤数据?
how to filter data from store in extJS?
请看下面我用来过滤数据的代码。
listeners: {
keyup: function (e, t, eOpts) {
var text = e.getValue();
var s = Ext.getStore('TempSensorDetailsStore');
s.clearFilter();
if (text) {
s.filterBy(function (rec) {
var str = (rec.get('vehicleNo')).toLowerCase();
var res = str.indexOf(text.toLowerCase());
if (res == 0) {
return true;
}
});
} else {
s.clearFilter();
}
}
}
上面的代码过滤了数据,但并不符合我的预期,
搜索结果显示仅匹配车号首字母的记录...应该return 车号[=23] =] 如果该字符出现在车号
例如
车辆 No.Abc-37046,如果用户搜索 37046,那么它也是 return 的车辆
我得到了解决方案,
只需要更改代码
if (res >- 1)
而不是
if (res == 0)
请看下面我用来过滤数据的代码。
listeners: {
keyup: function (e, t, eOpts) {
var text = e.getValue();
var s = Ext.getStore('TempSensorDetailsStore');
s.clearFilter();
if (text) {
s.filterBy(function (rec) {
var str = (rec.get('vehicleNo')).toLowerCase();
var res = str.indexOf(text.toLowerCase());
if (res == 0) {
return true;
}
});
} else {
s.clearFilter();
}
}
}
上面的代码过滤了数据,但并不符合我的预期,
搜索结果显示仅匹配车号首字母的记录...应该return 车号[=23] =] 如果该字符出现在车号
例如 车辆 No.Abc-37046,如果用户搜索 37046,那么它也是 return 的车辆
我得到了解决方案,
只需要更改代码
if (res >- 1)
而不是
if (res == 0)