在两个差异列上筛选网格存储
Filter store of grid on two differents columns
我试图在两列上筛选存储,一列带有数组,另一列带有单词开头(它将是and,而不是OR)。所以我知道如何用数组过滤商店:
grid.store.load().filterBy(function(record, id){
return Ext.Array.indexOf(filter, record.get("type")) !== -1;
}, this);
我知道如何用单词开头过滤商店:
{id: 'name', property: "name", value: newValue, anyMatch: true}
但我不知道如何将两者结合起来。
我试过了:
grid.store.load().filterBy(function(record, id){
if(Ext.Array.indexOf(filter, record.get("type")) !== -1 && record.get("name").indexOf(newValue) !== -1){
return record;
}
}, this);
但当我只想匹配它时,它会给我完整的单词。我该怎么做才能抓住单词的一部分?
每次过滤时都可以创建新的过滤器来过滤模型多个字段上的存储。可以通过将anyMatch
设置为true或使用regex来过滤部分单词。
对一列(模型的一个字段)进行筛选
这里我创建了一个使用anyMatch
过滤网格列的示例。
https://fiddle.sencha.com/#fiddle/ts4
列上方文本字段(示例应用程序中的FilterField)的部分代码:
keyup: {
fn: function(field, event, eOpts) {
var grid = this.up('grid'),
/* only filter when value is empty and key is backspace or delete */
isValidKey = ((event.keyCode === Ext.event.Event.BACKSPACE || event.keyCode === Ext.event.Event.DELETE) || !event.isSpecialKey());
if(isValidKey === true) {
grid.getStore().filter(new Ext.util.Filter({
anyMatch: true,
disableOnEmpty: true,
property: field.up('gridcolumn').dataIndex,
value : field.getValue()
}));
grid.getSelectionModel().select(0);
}
},
buffer: 250
}
筛选所有列(模型的所有文件)
这里我创建了一个示例,它使用regex过滤网格的所有列。
https://fiddle.sencha.com/#fiddle/un7
控制器(主控制器)的部分代码:
filterStore: function(searchValue) {
var me = this,
grid = me.getMainGrid(),
store = grid.getStore(),
regex = RegExp(searchValue, 'i');
store.clearFilter(true);
store.filter(new Ext.util.Filter({
filterFn: function(record) {
var match = false;
Ext.Object.each(record.data, function(property, value) {
match = match || regex.test(String(value));
});
return match;
}
}));
}
我用正则表达式解决了这个问题。如果有人想用一个数组和一个值过滤2列的网格,下面是你的方法:
grid.store.load().filterBy(function(record, id){
var re = new RegExp("/(^"+newValue+" )", 'i');
if(Ext.Array.indexOf(filter, record.get("type")) !== -1 && record.get("name").match(re) !== -1){
debugger;
return record;
}
}, this);
相关文章:
- 在筛选网格期间,网格负载掩码不起作用
- UI网格单一筛选器无法处理复杂数据
- 在组合框筛选后执行回调网格视图
- 剑道 UI 网格扩展筛选器参数
- 在 Dojo 增强网格筛选器栏上设置状态文本
- 将“剑道网格”列显示为“日期时间”,但在筛选时忽略“时间”
- 在下拉列表中使用多个对象类型为数据网格提供筛选
- 当本地绑定数据为整数时,对剑道 UI 网格进行筛选
- 将剑道网格与服务器端筛选器和服务器端排序结合使用,字段 = NULL
- 剑道 UI 网格筛选器在之前打开弹出窗口时不起作用
- CRM 2011 - 筛选的子网格搜索功能
- 为Kendo网格中的特定列自定义筛选消息
- 如何从分页ui网格中获取筛选的数据
- 在两个差异列上筛选网格存储
- 如何访问剑道网格's列菜单,并为列标题中的特定列添加筛选选项
- 我如何使用此代码筛选网格的所有列
- 无法获取网格存储筛选器
- 筛选Pinterest风格的网格
- 尝试保留筛选器状态时键入错误-Kendo UI网格
- 使用数据源筛选实现 KendoUI 网格搜索