2012-03-31 25 views
19

Tôi muốn sử dụng chức năng lọc của DataTables, nhưng không muốn sử dụng hộp tìm kiếm của chúng với nó.Lọc dữ liệuTables.net mà không có đầu vào hộp lọc bao gồm

In their docs dưới bFilter nó nói:

Lưu ý rằng nếu bạn muốn sử dụng lọc trong DataTables này phải còn 'true' - để loại bỏ các bộ lọc mặc định hộp nhập liệu và duy trì lọc khả năng, hãy sử dụng

sau đó câu chưa được hoàn thành.

tôi đã cố gắng:

var oTable = $('#sortable').dataTable({ 
    'bPaginate':false, 
    'bInfo':false, 
    'bFilter': true // displays Search box, setting false removes filter ability all together 
}); 
$('#Accumulate').click(function(){ 
    oTable.fnFilter("Accumulate"); 
}); 

Trả lời

20

Bạn cũng có thể che giấu được sử dụng lớp css

<style type="text/css"> 
.dataTables_filter { 
    display: none; 
} 
</style> 
+1

Aha, đơn giản và nhanh chóng. Cảm ơn. – Pratyush

+0

Đúng, bạn được chào đón. – Daniel

+4

sDom cũng đơn giản và nhanh chóng. ;-) Và nó sẽ không thay đổi CSS cho các bảng khác có thể sử dụng hộp tìm kiếm. Chắc chắn không phải "nho chua" ở đây, nhưng tôi thành thật cảm thấy rằng việc loại trừ hộp tìm kiếm bằng cách sử dụng các công cụ được cung cấp là giải pháp 'tốt hơn' hơn bao gồm nó rồi ẩn nó đi. –

12

Pratyush,

hiển thị mỹ phẩm tinh khiết và ẩn các yếu tố giao diện người dùng khác nhau được thực hiện với tham số sDom:

http://datatables.net/usage/options#sDom

Lưu ý rằng cú pháp theo yêu cầu là khác nhau tùy thuộc vào nếu bạn đang sử dụng jQuery UI hay không.

+1

Tôi chỉ nhìn vào tài liệu sDom và tôi sẽ nói đó là xa "đơn giản". Trong thực tế, nó không có ý nghĩa với tôi. Ẩn thông qua CSS rất đơn giản và nhanh chóng, mặc dù có thể không phải là phương pháp tối ưu. – dmikester1

+0

Đồng ý; nó không đơn giản. Nó đã cho tôi nhiều hơn một vài nỗ lực để làm cho nó phù hợp với các ứng dụng của tôi. Tuy nhiên, tôi nghĩ rằng thời gian đầu tư vào "làm cho nó" trả hết; sau đó bạn sẽ có thể sửa đổi các thành phần thay vì sửa đổi CSS. –

12

sử dụng (có khả năng tăng tốc độ khởi DataTable như tránh được một số tính):

$("#table").dataTable({"bFilter": false}); 

hoặc bất kỳ sDom mà không f tùy chọn (tham khảo tài liệu chính thức http://datatables.net/usage/options#sDom để biết danh sách các tùy chọn có sẵn):

$("#table").dataTable({"sDom": '...t...'}); 

Hãy tìm tùy chọn tương tự tại trang web hỗ trợ chính thức: http://datatables.net/forums/discussion/289/disable-search-filter-text-box

+1

Cảm ơn nó làm việc cho tôi .... –

3
"sDom": 'ltipr' 

là cách đơn giản nhất cách để làm điều đó.

ví dụ đầy đủ mà tôi đã sử dụng:

oTable = $('#overview').dataTable(

     { 
      "aoColumns":[ 
           null, 
           null, 
           null, 
           null, 
           null, 
           { "sSortDataType":"date-euro"}, 
           { "sSortDataType":"date-euro",}, 
           null 
       ], 
       "aaSorting":[], 
       "iDisplayLength": -1, 
       "aLengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]], 
       "sDom": 'ltipr' 

     } 
     ); 
+0

Xin chào Andrew, tôi sẽ cố gắng này, nhưng tôi tò mò những gì 'ltipr' là viết tắt của, và nếu bạn có thể thêm một số màu sắc để làm thế nào điều này làm cho các bộ lọc ẩn? Cảm ơn trước! – Poul

+0

Hi Poul, dưới đây là: 'l' - Thay đổi độ dài 'f' - Lọc đầu vào 't' - Bảng! 'i' - Thông tin 'p' - Phân trang 'r' - pRocessing nếu bạn rời khỏi f chẳng hạn, nó sẽ không hiển thị bộ lọc –

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