伺服器端處理

Select 2.1 引入了對伺服器端處理的支援 - 這裡需要特別考慮,因為列的選擇是在客戶端進行的,但並非所有列都可以在客戶端上取得(只有目前顯示的列)。這對 API 有影響,因為 .rows({selected: true}) 將只能取得目前顯示的列的相關資訊。

為了處理這個問題,Select 引入了 select.cumulative() 方法,可用於取得所有已選取列的 ID,無論分頁或篩選如何。請注意,資料來源必須每列都有一個唯一的 ID,您可能需要設定 rowId 選項來告訴 DataTables 它的名稱是什麼(預設情況下它會尋找 DT_RowId)。

此外,selectAll 按鈕和核取方塊標頭(與核取方塊選擇一起使用時)將只會選取目前顯示的列。這是因為客戶端無法知道還有哪些其他列可以選取。

這個範例讓您可以在啟用伺服器端處理時試用 Select。

名字 姓氏 職位 辦公室 開始日期 薪資
名字 姓氏 職位 辦公室 開始日期 薪資
  • Javascript
  • HTML
  • CSS
  • Ajax
  • 伺服器端腳本
  • 註解

下面顯示的 Javascript 用於初始化本範例中顯示的表格

$('#example').DataTable({ ajax: '../../../../examples/server_side/scripts/ids-objects.php', columns: [ { data: 'first_name' }, { data: 'last_name' }, { data: 'position' }, { data: 'office' }, { data: 'start_date' }, { data: 'salary' } ], layout: { topStart: { buttons: [ 'pageLength', { text: '檢視選取資訊', action: function (e, dt) { alert( '選取列的資訊:'+ JSON.stringify(dt.select.cumulative()) ); } } ] } }, processing: true, select: true, serverSide: true });
new DataTable('#example', { ajax: '../../../../examples/server_side/scripts/ids-objects.php', columns: [ { data: 'first_name' }, { data: 'last_name' }, { data: 'position' }, { data: 'office' }, { data: 'start_date' }, { data: 'salary' } ], layout: { topStart: { buttons: [ 'pageLength', { text: '檢視選取 ID', action: function (e, dt) { alert( '選取列的資訊:'+ JSON.stringify(dt.select.cumulative()) ); } }, 'selectAll', 'selectNone' ] } }, processing: true, select: true, serverSide: true });

除了上述程式碼外,還載入了以下 Javascript 程式庫檔案以供本範例中使用

    下面顯示的 HTML 是原始的 HTML 表格元素,在被 DataTables 增強之前

    這個範例使用了一些額外的 CSS,超出程式庫檔案(如下)載入的範圍,以便正確顯示表格。使用的額外 CSS 如下所示

    以下 CSS 程式庫檔案會載入以供本範例中使用,以提供表格的樣式

      此表格透過 Ajax 載入資料。下面顯示已載入的最新資料。當載入任何其他資料時,此資料將自動更新。

      下面顯示用於執行此表格伺服器端處理的腳本。請注意,這只是一個使用 PHP 的範例腳本。伺服器端處理腳本可以使用任何語言編寫,使用 DataTables 文件中描述的協定

      其他範例