2013-02-14 18 views
10

Tôi mới sử dụng jQuery và tôi cần phải biết liệu có cách nào để vô hiệu hóa tính năng lọc cho một trong các cột trong jQuery có thể đặt dữ liệu không? Datatable của tôi có 5 cột và tôi cần phải vô hiệu hóa lọc cho cột cuối cùng.Làm thế nào để vô hiệu hóa lọc trên một cột và giữ cho nó cho các cột khác trong một jQuery Datatable?

+0

Tôi sử dụng bFilter mặc định để tìm kiếm dữ liệu nhưng tôi không muốn bộ lọc chỉ tìm kiếm trong cột cuối cùng. – DhawalV

Trả lời

21

Use the bSearchable flag. Từ các tài liệu:

// Using aoColumnDefs 
$(document).ready(function() { 
    $('#example').dataTable({ 
    "aoColumnDefs": [ 
     { "bSearchable": false, "aTargets": [ 0 ] } 
    ] }); 
}); 


// Using aoColumns 
$(document).ready(function() { 
    $('#example').dataTable({ 
    "aoColumns": [ 
     { "bSearchable": false }, 
     null, 
     null, 
     null, 
     null 
    ] }); 
}); 
+0

Trong phiên bản mới (1.10+) của dataTable bạn có thể sử dụng cờ "có thể tìm kiếm": false' cho cột khi khởi tạo bảng. –

+0

Cú pháp đầy đủ của tìm kiếm là gì? – fatuhoku

+0

@fatuhoku https://datatables.net/reference/option/columns.searchable – Blazemonger

2
var mSortingString = []; 
var disableSortingColumn = 4; 
mSortingString.push({ "bSortable": false, "aTargets": [disableSortingColumn] }); 



    $(document).ready(function() { 
     var table = $('#table').dataTable({ 
      "paging": false, 
      "ordering": true, 
      "info": false, 
      "aaSorting": [], 
      "orderMulti": true, 
      "aoColumnDefs": mSortingString 

     }); 
    }); 

tôi đã dành lứa tuổi cố gắng để con số này ra mà cần phải có được một công việc đơn giản như vậy cho bất cứ ai vẫn nhìn chỉ cần thêm trong 3 dòng trên và tài liệu tham khảo mà cột bạn muốn vô hiệu hóa, của tôi là cột 5.

1

Điều này cũng hoạt động. Chỉ cần thay đổi số 4 đến số cột bạn muốn:

var table = $('#mytable').DataTable(
     { 
      initComplete: function() { 
       this.api().columns().every(function() { 
        var column = this; 
        if (column[0][0] == 4) { 
         console.log(column); 
         $(column.footer()).html(''); 
        } 
       }); 
      }, 
     } 
    ); 
2

Ngoài ra bạn có thể làm điều đó như thế này:

$('#ProductsTable').dataTable({ 
     "lengthMenu": [[20, 50, -1], [20, 50, "All"]], 
     "pageLength": 20, 
     "columnDefs": [ 
      { "orderable": false, "targets": [-1, 1] }, 
      { "searchable": false, "targets": [-1, 1] } 
     ] 
    }); 
1

Dưới đây là làm thế nào để vô hiệu hóa bộ lọc tìm kiếm toàn cầu trên nhiều cột sử dụng Datatable ColumnDef.

var datatable = $('#datatable').DataTable({ 
    "deferRender": true, 

    "columnDefs": [ 
     { targets: 0, searchable: true }, 
     { targets: [1,2], searchable: true }, 
     { targets: '_all', searchable: false } 
    ] 
}); 

này sẽ cho phép tìm kiếm trên cột 0, 1 & 2 chỉ số thông minh và vô hiệu hóa trên phần còn lại của tất cả chúng. Các quy tắc áp dụng từ trên xuống dưới được ưu tiên.

Các vấn đề liên quan