2015-09-16 3 views
0

Я хочу фильтровать более чем одно значение в том же столбце. Это возможно в slickgrid. Я знаю, как сделать это с использованием setFilterArgs один значение:SlickGrid - фильтр по нескольким значениям в одном столбце?

Filter Object: 
colFilObj: {"StatusCode":"TestAll"} 

var colFilObj= []; 
colFilObj["StatusCode"] = "TestAll"; 
DataView.setFilterArgs(colFilObj); 

Может объект быть изменен, чтобы принимать несколько значений и работать?

ответ

1

Я сделал такой фильтр, используя разделитель строк (вы можете использовать commma - я использовал точку с запятой). Затем просто создайте свой собственный фильтр и назначьте его: dataView.setFilter (myFilter);

Таким образом, пользователь должен ввести м; т, например, чтобы увидеть все предметы, которые имели м или т в значении элемента этого столбца

метод

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; 
} 
Смежные вопросы