Reputation: 10254
I want to filter by more than one value in the same column. Is that possible in slickgrid. I know how to do it with one value using setFilterArgs:
Filter Object:
colFilObj: {"StatusCode":"TestAll"}
var colFilObj= [];
colFilObj["StatusCode"] = "TestAll";
DataView.setFilterArgs(colFilObj);
Can the object be modified to accept multiple values and work?
Upvotes: 0
Views: 928
Reputation: 11
I made a filter like this using a string delimiter (you can use a commma - I used a semi-colon). Then just create your custom filterand assign it: dataView.setFilter(myFilter);
So, the user would enter m;t for example, to see all items which had m or t in the item value of that column
MyFilter method:
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;
}
Upvotes: 1