Datatables - Как остановить поиск по скрытым полям в datatables - PullRequest
0 голосов
/ 25 октября 2018

У меня есть html таблица, и я добавляю класс данных, когда страница загружается.Здесь у меня есть несколько скрытых столбцов тоже.Я хочу предотвратить поиск по скрытым полям.Я использовал «поиск», и он не работает.Следующее - моя функция, которая добавляет таблицы данных.

function xData() {
    var object_id = document.getElementsByName('object_id')[0].value;
    var object_type = document.getElementsByName('object_type')[0].value;
    var process_id = document.getElementsByName('process_id')[0].value;
    var repeaterControlId = 00202;
    dataTableReload_X = jQuery('#xData').DataTable({
        "orderClasses": false,
        "lengthChange": false,
        "autoWidth": false,
        colReorder: false,
        dom: 'lfrtip',
        "bSort": false,
        responsive: true,
        fixedColumns: true,
        "bProcessing": true,
        "bServerSide": true,
        "iDisplayLength": 10,
        "ordering": true,

        "sAjaxSource": "/test.pl",
        "fnServerData": function (sSource, aoData, fnCallback, oSettings) {

            aoData.push({ "name": "object_id", "value": object_id });
            aoData.push({ "name": "object_type", "value": object_type });
            aoData.push({ "name": "process_id", "value": process_id });
            aoData.push({ "name": "control_id", "value": repeaterControlId });

            jQuery.getJSON(sSource, aoData, function (json) {
                var newJson_imprtdData = {};
                newJson_imprtdData.recordsFiltered = json.rowCount;
                newJson_imprtdData.recordsTotal = json.rowCount;
                newJson_imprtdData.data = [];
                for (var i = 0; i < json.rowData.length; i++) {
                    var dummy = [
                        json.rowData[i]["test_ID"],
                        json.rowData[i]["test_Category_ID"],
                        json.rowData[i]["test_Category_Name"],
                        json.rowData[i]["test_Val"],
                        json.rowData[i]["test_Owner"],
                        json.rowData[i]["test1"],
                        json.rowData[i]["test2"]
                    ];
                    newJson_imprtdData.data.push(dummy);
                }
                fnCallback(newJson_imprtdData);
            });
        },

        "drawCallback": function () {
            jQuery('#xData tbody tr').on('click', function () { editX(this) });
            jQuery("#xData").removeClass("dataTable");
            discardEdit();
            jQuery('#btnAddEdit').removeAttr("disabled");
        },

        "columnDefs": [
            { "searchable":false, "targets": [0,5,6] }, 
            { className: "hiddenItems", "targets": [0,5,6] }, 

        ],

        "language": {
            "emptyTable": "No records found",
            "processing": "Wait...."
        },
    });
}

Есть ли проблемы со следующими строками?

"columnDefs": [
    { "searchable":false, "targets": [0,5,6] }, 
    { className: "hiddenItems", "targets": [0,5,6] }, 
],

0, 5, 6 поля скрыты.Но поиск по-прежнему ведется с полевыми данными.

1 Ответ

0 голосов
/ 24 января 2019

Возможно, вы используете более старую версию DataTables?Если это так, попробуйте:

"aoColumnDefs": [
          { 'bSearchable': false, 'aTargets': [ 0,5,6 ] }
       ]
...