当显示的数字少于数字时,无法隐藏每页的项目和数据表中的分页

时间:2019-07-16 07:56:57

标签: javascript jquery datatables

我有一个Datatable,如果返回一页,我想隐藏“每页项” dropdown列表以及pagination。过滤表时,这也需要起作用。

我正在使用:

.DataTable().page.info()

下面是我的代码

"fnDrawCallback": function () {
    var accountSearchDataTableInfo = $('#accountSearchDataTable').DataTable().page.info();

    if (accountSearchDataTableInfo.pages == '1') {
        console.log(accountSearchDataTableInfo.pages == '1')
        $('#accountSearchDataTable_length').hide();
        $('#accountSearchDataTable_paginate').hide();
    }

    if (accountSearchDataTableInfo.pages == 1) {
        console.log(accountSearchDataTableInfo.pages == 1)
        $('#accountSearchDataTable_length').hide();
        $('#accountSearchDataTable_paginate').hide();
    }
}

这给...

初始表加载表信息

enter image description here

已过滤的表格信息

enter image description here

从我的IF中可以看到,我尝试了一个数字和字符串,但是当我对它们进行console.log时,它又返回了true,但仍显示了项目。

我尝试过.hide().css('display', 'none'),但似乎没有任何效果,我无所适从。

当我查看element中的Dev tools时,添加了style属性,但之后没有任何内容:

初始表加载

enter image description here

已过滤表格

enter image description here

2 个答案:

答案 0 :(得分:0)

找到了解决方案。我一直在寻找父项DIV,但似乎如果我使用了每个单独的标识符,我就可以将其隐藏。所以我的IF现在看起来像

if (accountSearchDataTableInfo.pages == '1') {
    $('.mb-2').hide(); // Items per page DD
    $('#accountSearchDataTable_previous').hide(); // Pagintator 'Previous' button
    $('#accountSearchDataTable_next').hide(); // Pagintator 'Next' button
    $('.paginate_button').hide(); // Pagintator page '1' button
}

答案 1 :(得分:0)

您可以使用下面的api确定页数

  

table.api()。page.info()。pages

如文档所述:

https://datatables.net/reference/api/page.info()

绘制表格后使用drawCallback(),如此处所述:

https://datatables.net/reference/option/drawCallback

示例在页面等于或小于1时如何隐藏分页:

$('#example').dataTable( {
    "drawCallback": function( settings ) {
        var api = this.api();

        var pagination = $(this).closest('.dataTables_wrapper').find('.dataTables_paginate');
        pagination.toggle(api.page.info().pages > 1);
    }
} );