Отфильтровать данные из таблицы данных на основе выбора пользователя
Сценарий:
Мне нужно отфильтровать данные из таблицы данных на основе выбора, который был сделан от пользователя. Для реализации этого у меня есть элемент управления дерева, который представляет иерархию данных в таблице данных. Когда пользователь снимает флажок с определенного узла в дереве. Эти данные должны быть взяты из таблицы данных.
Вопрос:
- Как отфильтровать данные из таблицы данных?
- Если я использую метод search(), он дает мне соответствующие строки, и я хочу противоположность этому. Мне нужно вывести соответствующие строки вместо того, чтобы показывать их.
Я попытался использовать следующую функцию фильтра, но она дает мне отфильтрованные данные.
table.column([column number]).data().filter(function (value, index) {});
Буду признателен за любую помощь в этом.
Спасибо
2 ответа
Простой ответ - инвертировать фильтр. т.е. измените фильтр так, чтобы он возвращал ложь там, где он в настоящее время возвращает истину, и наоборот.
Вы также можете сделать это с помощью поиска, перевернув искомое регулярное выражение.
Вы можете реализовать свою собственную функцию поиска:
var table = $('#myTable').DataTable();
$.fn.dataTable.ext.search.push(
function(oSettings, aData, iDataIndex) {
var match = true;
$(".checkbox:checked").each(function(index) {
var cb = $(this);
var id = $(this).attr('id');
if (aData.toString().toLowerCase().indexOf(id) >= 0) {
match = false;
} else {
match = true;
}
});
return match;
});
Пожалуйста, посмотрите демо здесь. Надеюсь, поможет.