Применить поиск к нескольким столбцам - PullRequest
0 голосов
/ 19 декабря 2018

Я использую DataTables версии 1.10.16, и в настоящее время у меня инициализируется таблица данных:

// Setup the emails datatable
var auto_responders = $('#auto_responders').DataTable({
  ajax: {
    url: "assets/php/get_auto_responders.php",
    dataSrc: ''
  },
  columns: [
    { data: 'user_first_name', title: 'User Name', createdCell:
  function (td, cellData, rowData, row, col) {
  $(td).text(cellData + ' ' + rowData['user_last_name']);
}
},
    { data: 'user_last_name', visible: false},
    { data: 'customer_first_name', title: 'Customer Name', createdCell:
  function (td, cellData, rowData, row, col) {
  $(td).text(cellData + ' ' + rowData['customer_last_name']);
}
},
    { data: 'customer_last_name', visible: false},
    { data: 'email', title: 'Email', createdCell:
  function (td, cellData, rowData, row, col) {
  $(td).html('<a href="mailto:' + cellData + '">' + cellData + '</a>');
}
},
    { data: 'customer_id', searchable: false, visible: false },
    { data: 'date_entered', title: 'Date Entered' },
    { data: 'title', title: 'Auto-Responder' },
    { data: 'queued_ids', title: 'Upcoming Responders', searchable: false, createdCell:
      function (td, cellData, rowData, row, col) {
        if (!cellData) {
    $(td).html('<span class="text-danger text-center d-block">No Automatic Responders Queued</span>');
  } else {
    $(td).html('<button type="button" class="btn btn-block btn-outline-success queued_auto_responders" data-queued-ids="' + cellData + '" data-toggle="modal" data-target="#modal_queued_responders">View Queued Automatic Responders</button>');
  }
      }
    }
  ]
});

Как вы можете сказать, я объединяю первые два (имя и фамилию пользователя) изатем следующие два столбца (имя и фамилия клиента), когда они отображаются, но я устанавливаю для видимости соответствующих столбцов фамилии значение false.

Чтобы создать раскрывающийся фильтр для человека на веб-странице, чтобыбыстро просмотреть все строки для конкретного пользователя У меня есть следующий код:

auto_responders.columns([0, 1]).search(filter).draw();

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

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете выполнить пользовательскую фильтрацию поиска с помощью API поиска в таблицах данных

$.fn.dataTable.ext.search

Пример здесь Пользовательская фильтрация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...