Jquery数据表如果隐藏所有行,则不显示结果匹配消息

时间:2014-10-27 05:35:45

标签: jquery datatable

我从数据库填充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/

1 个答案:

答案 0 :(得分:1)

这可能不是最优雅的解决方案,但如果您不是动态查询数据库,则总记录数(隐藏和显示)应保持不变。

这意味着您可以将变量设置为计数器,并在显示或隐藏每条记录时将其递增。如果你把一个隐藏的div与你的消息放在表格下面,那么你可以添加一个if语句来查看隐藏行数是否等于记录总数并相应地显示div。