如何在初始化 server-side 处理数据表后调整列?

How can I adjust the columns after initializing server-side processing datatable?

加载我的 server-side 处理数据表时,header 已损坏。为了解决这个问题,我将 table.columns.adjust().draw() 添加到我的 initComplete 函数中:

var table = $('.table').DataTable({
   "serverSide": true,
   /// more code...
   "initComplete": function(settings, json) {
       table.columns.adjust().draw();
   }
});

这有效,但它影响了分页。不再显示正确的页面。它被设置回第一页。我该如何防止这种情况?

对于 DataTables 版本 > 1.10.x,您可以简单地将 false 传递给 draw() api 这将重绘 table 但保持当前分页位置如:

table.columns.adjust().draw( false );

docs所述:

  • paging 错误
    • 将重新计算排序和搜索,并在新位置重新绘制行。分页将不会重置 - 即当前页面仍会显示。