2014-10-27 49 views
0

我正在從數據庫填充一個html表,並應用了基於客戶端jquery的記錄過濾。當用戶輸入時,記錄會不斷進行過濾。基於過濾條件,我傾向於顯示或隱藏如下所示的行。Jquery Datatable如果隱藏所有行,則不顯示結果匹配消息

gridRows.hide(); 
gridRows.show(); 

一切似乎工作正常。我面臨的問題是,當所有行都隱藏起來時,我需要顯示一條消息,如'沒有結果符合您的過濾條件'。目前,代碼沒有顯示任何內容。它只是切換所有的行。像「emptyTable」或「zeroRecords」這樣的屬性也不起作用。似乎他們只會工作,如果表格根本沒有這些行。在我的情況下,行是存在的,但它們是隱藏的。我無法刪除行的原因是我需要恢復它們,一旦過濾器被刪除,一切都應該是客戶端。

$(document).ready(function() { 
     var table = $('#testtable').DataTable({ 
      "columnDefs": [ 
        { 
         "targets": [0, 1, 2], 
         "searchable": true, 
         "orderable": true 
        } 
       ], 
      "order": [[0, 'asc']], 
      "bPaginate": false, 
      "language": { 
       "emptyTable": "<p>You have no data available.</p>", 
       "zeroRecords": "No records match your filter criteria"      
      } 
     }); 
    }); 

我現在想到的解決方案會讓事情變得更加複雜。任何幫助,將不勝感激!

我使用的過濾機制可以在下面找到。 http://chris-spittles.co.uk/jquery-filter-table/

回答

1

這可能不是最優雅的解決方案,但如果您不是動態查詢數據庫,那麼總記錄數(隱藏和顯示)應該是不變的。

這意味着你可以設置一個變量作爲計數器,並增加它的時候可以顯示或隱藏每個記錄。如果你在表格下面放置一個帶有你的消息的隱藏div,那麼你可以添加一個if語句來查看隱藏行的數量是否等於記錄的總數並相應地顯示div。

相關問題