狀態儲存
狀態儲存 - 在頁面重新載入時還原表格狀態。
說明
啟用或停用狀態儲存。 DataTables 會儲存狀態資訊,例如分頁位置、顯示長度、篩選和排序。當此初始化選項啟用並且最終使用者重新載入頁面時,表格的狀態將會更改為符合他們先前設定的狀態。
在瀏覽器中儲存狀態資訊的資料,是透過使用 HTML5 API 的 localStorage
或 sessionStorage
來完成的。 stateDuration
參數用於指示 DataTables 應使用哪個 API(localStorage
:0 或更大,或 sessionStorage
:-1)。stateDuration
參數也可用於指示儲存的狀態應被視為有效的時間長度。請參考 stateDuration
取得其他詳細資訊。
為了能夠唯一識別每個表格的狀態資料,會使用表格的 DOM id
和當前頁面的路徑名稱的組合來儲存資訊。如果表格的 id
變更,或者頁面 URL 變更,狀態資訊將會遺失。
如果您不希望使用 localStorage
或 sessionStorage
,可以透過 stateSaveCallback
和 stateLoadCallback
選項使用替代選項,例如透過 Ajax 在伺服器上儲存狀態。
子列的狀態也可以維護,但是這需要開發人員完成一些工作。 每當 DataTables 想要將子列插入表格時,都會觸發 requestChild
。開發人員必須為此事件設定一個回呼函式,以處理子列的顯示。同樣值得注意的是,為了使此功能正常運作,列必須具有 ID,並且此功能僅在 1.11.0 及更高版本中可用。
注意:從 1.11.0 開始,無論 stateSave
選項如何,都會儲存 datatables 狀態。 只有當啟用 stateSave
選項時,才會使用此資料還原到狀態,否則不會使用。
類型
此選項可以給定以下類型
預設值
- 值:
false
範例
啟用狀態儲存
new DataTable('#myTable', {
stateSave: true
});
啟用狀態儲存,並覆寫狀態儲存/載入處理程式,使其僅使用表格的 DOM ID
new DataTable('#myTable', {
stateSave: true,
stateSaveCallback: function (settings, data) {
localStorage.setItem(
'DataTables_' + settings.sInstance,
JSON.stringify(data)
);
},
stateLoadCallback: function (settings) {
return JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));
}
});
相關
以下選項直接相關,並且在您的應用程式開發中也可能很有用。