捲動和 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 文件中描述的協定

      其他範例