2014-09-24 3 views
0

Вместо того, чтобы вводить значение в поле поиска и видеть только данные с этим значением столбца, я хочу видеть все данные, которые не имеют этого значения столбца.Как отфильтровать значение из таблиц данных?

Так, например, если столбец Fry Size был: Small, Medium, Large, or Mega как возможное значение, и я набрал в Mega в строке поиска, я хочу видеть только те данные, которые имеют: Small, Medium, or Large в Fry Size колонки.

Можно ли это сделать? Если да, то как?

ответ

0

Да, вы можете выполнить такой выборочный поиск, но есть некоторые подводные камни: в общем случае данные datatables будут применять собственную фильтрацию до пользовательских, поэтому в вашем случае добавление пользовательской фильтрации отражается в пустой таблице. Таким образом, вы можете полностью отключить механизм фильтрации происхождения путем манипулирования sDom:

'sDom': '<"top"l>rt<"bottom"ip><"clear">' 

Добавьте вход для вашей собственной фильтрации:

<input type="text" id="reverseSearch" /> 

Затем примените пользовательскую фильтрацию:

$.fn.dataTable.ext.search.push(
    function (settings, data, dataIndex) { 
     var frySize = data[1]; // from the fiddle example 
     var searchPhrase = $("#reverseSearch").val(); 
     if (searchPhrase) { 
      return !(frySize.toLowerCase().indexOf(searchPhrase.toLowerCase()) > -1); 
     } 
     return true; 
    } 
); 

И, наконец, привязать этот новый serachbox к данным datatables draw событие:

$('#reverseSearch').keyup(function() { 
     table.draw(); 
}); 

JSFiddle

Смежные вопросы