【问题标题】:DataTables reload table with different pageLength paramDataTables 使用不同的 pageLength 参数重新加载表
【发布时间】:2018-08-07 15:09:02
【问题描述】:

基于this 问题。

我使用以下代码初始化我的datatables.js 表:

 var table_entity = $('#myTable').DataTable({
    "pageLength":getParameterByName('pageLength'),//getting param from query string
    fixedHeader: true,
     "ajax": {
         "url": myUrl,
          "data": function(d) {
                d.type = $('#mytype').val();
            }
     }
});

所以我知道如何使用不同的 ajax 参数重新加载我的数据表。现在我需要使用不属于 ajax 部分的不同 pageLength 参数重新加载它,并且在数据表 init 阶段记录。我尝试在重新加载时直接传递它,代码如下:

table_entity.ajax.reload({
    "pageLength":77 //some new param different from the initial one
});

但它不起作用,表格重新加载了初始 pageLength 值。欢迎任何如何解决它的想法。谢谢。

UPD_1

设法用

做到这一点

第一个:彻底销毁一张表:

$('#MyTable').DataTable().destroy();
$('#MyTable tbody').empty();//note tbody here

第二个:使用更新的参数重新初始化表:

table_data.displayStart   = Number(getParameterByName('displayStart'));
table_data.pageLength     = Number(getParameterByName('pageLength'));
table_data.iDisplayStart  = Number(getParameterByName('displayStart'));
table_data.iDisplayLength = Number(getParameterByName('pageLength'));

$('#MyTable').DataTable(table_data);

注意 2 参数 - iDisplayStartiDisplayLength 此处

是否可以在不破坏表的情况下做同样的事情,但在ajax.reload 阶段?谢谢。

【问题讨论】:

    标签: pagination datatables


    【解决方案1】:

    是否可以在不破坏桌子的情况下做同样的事情,但是 在 ajax.reload 阶段?

    您可以挂钩xhr.dt 事件并从那里更新page.len()。示例:

    $('#example').on('xhr.dt', function(e, settings, json, xhr) {
      table.page.len(json.data.length).draw()
    })
    

    将动态设置页面长度为最大长度,即data。演示 -> http://jsfiddle.net/d72zbyus/

    所以你可以使用table.page.len(77).draw() 或其他。 xhr.dt 在每次 AJAX 请求后触发。

    我不清楚你的新pageLength 究竟来自哪里。如果它是返回的 JSON 的一部分(我怀疑),你可以这样做 table.page.len(json.pageLength).draw()

    【讨论】:

    • 谢谢您的回答,是否可以像pageLength一样更新页面起始参数?
    • @Jack,你可以用同样的方式使用table.page( json.displayStart ).draw( 'page' )datatables.net/reference/api/page()
    猜你喜欢
    • 2018-12-03
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多