從 1.7 版升級到 DataTables 1.8 版

DataTables 1.8 在開發時考慮了向後相容性,因此對於大多數開發人員來說,它應該可以直接替換。儘管如此,仍有一些小問題您應該注意,尤其是在開發外掛程式時。

常見升級問題

  • FixedColumns
    • 如果您在 thead 或 tfoot 元素中使用多個列,DataTables 1.8 的處理方式已變更,這會對 FixedColumns 擴充功能產生連鎖反應。請更新至最新的 FixedColumns 版本 (2.0.1+)。
  • ColReorder
    • 由於標頭和頁尾的佈局新方法,ColReorder 必須更新才能完全與 DataTables 1.8 搭配使用。它在大多數情況下「看起來」可以正常運作,但是若沒有更新 ColReorder,ColVis 的整合將會失敗。請更新至最新的 ColReorder 版本 (1.0.3+)。
  • bSortCellsTop:
    • 先前,DataTables 會自動將排序處理程式新增到每個欄位的頂端唯一儲存格。在 1.8 版中,由於改進了複雜標頭的功能,現在會自動應用於最底部的儲存格(此類事件處理程式最常見的位置)。使用屬性 bSortCellsTop 並將其設定為 true,可以還原原始行為。

新的初始化選項

  • bDeferRender - 延遲渲染
  • mDataSource - 資料來源設定
  • iDeferLoading - 在伺服器端處理時,延遲第一個 XHR 並使用表格中已有的資料進行第一次繪製
  • bSortCellsTop - 控制標頭中的哪個儲存格應該用於點擊以進行排序的選項
  • sDefaultContent - 如果 mDataProp 或資料本身為 null,則使用的儲存格預設內容
  • fnPreDrawCallback - 允許取消繪製的回呼函式
  • sLoadingRecords - 使用 Ajax 來源的資料時,在空白表格列中顯示載入訊息(而不是像 1.7 版那樣顯示「無記錄」)。對於伺服器端處理,只需將您的載入訊息放入純 HTML 中即可。

API 方法更新

  • fnOpen - 第二個參數現在可以是節點或 jQuery 物件以及純字串
  • fnGetData - 新的第二個參數,用於取得目標列中欄位的資料
  • fnUpdate - 使用資料來源選項 (mDataProp) 時,第一個參數可以是物件

外掛程式和 API 開發人員的變更

  • anThExtraanTfExtra
    • 這些屬性是 aoColumns 中欄位定義物件的一部分,現在已移除,因為 DataTables 內部快取不再需要它們。在外掛程式中參考它們會導致錯誤發生。
  • fnGetNodes
    • 由於 1.8 版中新增的延遲渲染功能,fnGetNodes 現在只會傳回已建立的節點。這表示如果您使用延遲渲染,您可能會收到總共可能的 TR 元素子集合。

如果您在升級過程中遇到任何其他問題,請在論壇中告知我。