初始化服务器端处理数据表后如何调整列?

Posted

技术标签:

【中文标题】初始化服务器端处理数据表后如何调整列?【英文标题】:How can I adjust the columns after initializing server-side processing datatable? 【发布时间】:2020-07-29 18:53:12 【问题描述】:

加载我的服务器端处理数据表时,标题已损坏。为了解决这个问题,我在我的 initComplete 函数中添加了table.columns.adjust().draw()

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

这可行,但它影响了分页。不再显示正确的页面。它被设置回第一页。我怎样才能防止这种情况发生?

【问题讨论】:

您使用的是哪个 DataTables 版本? 数据表 1.10.19 和 DataTables Bootstrap 3 集成 【参考方案1】:

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

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

如docs中提到的:

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

【讨论】:

哦,非常感谢!我一直在寻找解决方案,你怎么知道的? 过去几年我一直在使用数据表 :) 我还添加了文档链接。

以上是关于初始化服务器端处理数据表后如何调整列?的主要内容,如果未能解决你的问题,请参考以下文章

DataTables 服务器端处理 - 如何添加不是来自数据库的计算列值?

更改为服务器端处理后,jQuery 数据表分页中断

JQuery DataTable 标头未与 ScrollY 和服务器端处理对齐

如何使用 jQuery UI 使 datatables.js 的列可调整大小

socket入门分析

如何在我的数据表 ajax 服务器端数据中添加下拉列表以使用数据表列显示到表中