我从数据库填充html表并应用了基于客户端jquery的记录过滤。当用户键入时,记录会连续过滤。根据过滤条件,我倾向于显示或隐藏行,如下所示。
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/
答案 0 :(得分:1)
这可能不是最优雅的解决方案,但如果您不是动态查询数据库,则总记录数(隐藏和显示)应保持不变。
这意味着您可以将变量设置为计数器,并在显示或隐藏每条记录时将其递增。如果你把一个隐藏的div与你的消息放在表格下面,那么你可以添加一个if语句来查看隐藏行数是否等于记录总数并相应地显示div。