Отфильтровать данные из таблицы данных на основе выбора пользователя

Сценарий:

Мне нужно отфильтровать данные из таблицы данных на основе выбора, который был сделан от пользователя. Для реализации этого у меня есть элемент управления дерева, который представляет иерархию данных в таблице данных. Когда пользователь снимает флажок с определенного узла в дереве. Эти данные должны быть взяты из таблицы данных.

Вопрос:

  • Как отфильтровать данные из таблицы данных?
  • Если я использую метод 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;
  });

Пожалуйста, посмотрите демо здесь. Надеюсь, поможет.

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