外部行过滤后重置Jquery Datatable分页

时间:2016-08-11 12:42:45

标签: jquery pagination datatables datatables-1.10

我有一些绑定到数据的静态数据。然后我使用jquery datatable.net插件将分页应用于表。

现在我有外部过滤逻辑,它隐藏并显示行。我设法过滤所有页面上的记录。但有些我无法根据过滤后的记录重置分页(即页码)。只有所有页面中的记录都消失了,但不会重置分页。例如早先我有100条记录和10页(每页10条记录),过滤后我有30条记录,所以我只能看到3页,而是看到所有10页,有些页面是空白的。

我有以下代码:

function initSorting() {
var odatatable = $("#tblLoanPayment").DataTable({
    "sDom": '<p"top"><"bottom"><"clear">',
    paging: true,
    searching: false,
    ordering: true,
    select: false,
    lengthChange: false,
    pagingType: "full_numbers",
    "oLanguage": {
        "sInfo": "_START_ - _END_ of _TOTAL_",
        "oPaginate": {
            "sNext": ">",
            "sPrevious": "<",
            "sFirst": "<<",
            "sLast": ">>"
        }
    },
    "aaSorting": [],
    bInfo: false,
    "columnDefs": [{
        "targets": [2, 3, 4, 5],
        "orderable": false
    }]
});
return odatatable;
}

$(document).ready(function () {
    checkNEnableButton();
    var odatatable = initSorting();
    $(".chosen-select").change(function () {
        $('#tblLoanPayment').DataTable().destroy();
        //some add remove row logic here...
        initSorting();
    });
});

感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我会将我的评论作为回答:我的建议是保持简单而不是创造和放弃。在onchange上破坏表。我会在document.ready()上创建表,并在更改下划线数据后调用draw()。以下是我在申请中的表现:

sortFilteredGridData();
table.clear();
table.rows.add(filteredGridData);
table.draw();

过滤的网格数据是一个数据数组。