滚动和 Bootstrap 标签

此示例展示如何将带滚动的 DataTables 与 Bootstrap 标签 配合使用(亦或任何其他方法,即表在初始化时处于隐藏的 display:none 元素中)。

需要特别考虑的原因是,当 DataTable 在隐藏元素中初始化时,浏览器没有任何度量标准可以提供给 DataTable,在启用滚动时这会导致列错位。

将表显示时(即它具有尺寸)可通过 columns.adjust() 方法来更正此错位。

此示例展示如何使用 Bootstrap 的 shown.bs.tab 事件触发此方法调用。使用静态的 $.fn.dataTable.tables() 方法选择页面上的可见表,然后对它们运行 columns.adjust() 方法。

姓名 职位 办公室 分机号码 开始日期 年薪
姓名 职位 办公室 分机号码 开始日期 年薪
  • Javascript
  • HTML
  • CSS
  • Ajax
  • 服务器端脚本
  • 注释

以下显示的 Javascript 用于初始化此示例中显示的表

$('button[data-bs-toggle="tab"]').on('shown.bs.tab', function (e) { DataTable.tables({ visible: true, api: true }).columns.adjust(); }); $('table.table').DataTable({ ajax: '../ajax/data/arrays.txt', paging: false, scrollCollapse: true, scrollY: 200 }); // 针对此演示对第二个表应用搜索 $('#myTable2').DataTable().search('New York').draw();
// 监听 Bootstrap 选项卡更改 document.querySelectorAll('button[data-bs-toggle="tab"]').forEach((el) => { el.addEventListener('shown.bs.tab', () => { DataTable.tables({ visible: true, api: true }).columns.adjust(); }); }); new DataTable('table.table', { ajax: '../ajax/data/arrays.txt', paging: false, scrollCollapse: true, scrollY: 200 }); // 针对此演示对第二个表应用搜索 new DataTable.Api('#myTable2').search('New York').draw();

除了上述代码,还加载了以下 Javascript 库文件以用于此示例

    以下显示的 HTML 是原始 HTML 表元素,在 DataTables 增强之前

    此示例使用了除了库文件中加载的内容之外的少量附加 CSS,以正确显示表。以下显示了使用的附加 CSS

    加载以下 CSS 库文件用于此示例,以提供表的样式

      此表通过 Ajax 加载数据。显示最新的已加载数据。随着其他任何数据的加载,此数据会自动更新。

      以下显示用于执行此表的服务器端处理的脚本。请注意,此脚本只是一份使用 PHP 的示例脚本。服务器端处理脚本可以用任何语言编写,使用 DataTables 文档中描述的协议

      其他示例