Таблицы данных jQuery — фильтровать поля ввода

#jquery #jquery-datatables

#jquery #таблицы данных

Вопрос:

Как фильтровать поля ввода (пользовательский ввод в текстовые поля, скрытые поля, выделения, текстовые области и т.д.) В таблице данных?

     $('#datatable').dataTable({
        "aoColumnDefs": [
            { "aTargets": [0], "bSearchable": true }, // <input type="text">
            { "aTargets": [1], "bSearchable": true }, // <select>
            { "aTargets": [2], "bSearchable": true }, // radio buttons
        ],
        "aaSorting": [[1, 'asc']]
    });
  

Ответ №1:

Если вы используете 1.8.2 или более позднюю версию, вы можете использовать fnServerParams, который добавляется в код инициализации вашей таблицы следующим образом:

 ...
"aaSorting": [[1, 'asc']],
"fnServerParams": function (aoData) {
       aoData.push({ "name": "my-id", "value": $('#my-selector').val() });
},
...
  

В этом примере каждый раз, когда таблица перерисовывается, my-id значение передается в качестве параметра из <input id="my-selector"... , который, очевидно, может быть любым типом ввода, полем или элементом, значение которого вам нужно получить.

Вашему источнику данных необходимо знать, чтобы ожидать этот новый параметр (вы не указываете, какой источник данных вы используете, но вот пример sAjaxSource использования серверного c #):

 var customParam = Request.QueryString["my-id"];
  

Вы также можете использовать fnDraw() для запуска фильтрации с помощью кнопки, ссылки и т.д.

Ответ №2:

Похоже, вы используете более старую версию (если версия добавленного вами тега соответствует используемой вами).

Поле для поиска находится здесь.

И вы можете по-настоящему повеселиться с этим, используя filtering example API

Это должно помочь вам найти нужный путь. Ознакомьтесь с другими примерами. Я использовал это несколько раз, и это довольно удобно для многих задач.