2014-10-27 141 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。

相关问题