Как отфильтровать значение OUT из DataTables?

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

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

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

1 ответ

Да, вы могли бы выполнить такой пользовательский поиск, но есть некоторые подводные камни: 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 с таблицами данных draw событие:

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

JSFiddle

Другие вопросы по тегам