Как отфильтровать значение 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();
});