【问题标题】:SlickGrid- Filter by multiple values in one column?SlickGrid-在一列中按多个值过滤?
【发布时间】:2015-12-13 03:27:03
【问题描述】:
我想在同一列中过滤多个值。在 slickgrid 中可能吗?我知道如何使用 setFilterArgs 处理一个值:
Filter Object:
colFilObj: {"StatusCode":"TestAll"}
var colFilObj= [];
colFilObj["StatusCode"] = "TestAll";
DataView.setFilterArgs(colFilObj);
可以修改对象以接受多个值并工作吗?
【问题讨论】:
标签:
javascript
search
filter
slickgrid
【解决方案1】:
我使用字符串分隔符制作了这样的过滤器(您可以使用逗号 - 我使用了分号)。然后只需创建您的自定义过滤器并分配它:
dataView.setFilter(myFilter);
因此,例如,用户将输入 m;t,以查看在该列的项目值中具有 m 或 t 的所有项目
MyFilter 方法:
function myFilter(item) {
for (var columnId in columnFilters) {
if (columnId != undefined && columnFilters[columnId] !== "") {
var c = grid.getColumns()[grid.getColumnIndex(columnId)];
var multiFilters = columnFilters[columnId].split(";");
var valid=false;
for(var j=0; j<multiFilters.length; j++){
if (multiFilters[j] != undefined && multiFilters[j] != "" && item[c.field] != undefined){
if (("" +item[c.field]).toLowerCase().indexOf(multiFilters[j].toLowerCase()) != -1){
valid = true;
}
}
}
if(!valid){
return false;
}
}
}
return true;
}