{hero}

狀態儲存

自:DataTables 1.10 起

狀態儲存 - 在頁面重新載入時還原表格狀態。

說明

啟用或停用狀態儲存。 DataTables 會儲存狀態資訊,例如分頁位置、顯示長度、篩選和排序。當此初始化選項啟用並且最終使用者重新載入頁面時,表格的狀態將會更改為符合他們先前設定的狀態。

在瀏覽器中儲存狀態資訊的資料,是透過使用 HTML5 API 的 localStoragesessionStorage 來完成的。 stateDuration 參數用於指示 DataTables 應使用哪個 API(localStorage:0 或更大,或 sessionStorage:-1)。stateDuration 參數也可用於指示儲存的狀態應被視為有效的時間長度。請參考 stateDuration 取得其他詳細資訊。

為了能夠唯一識別每個表格的狀態資料,會使用表格的 DOM id 和當前頁面的路徑名稱的組合來儲存資訊。如果表格的 id 變更,或者頁面 URL 變更,狀態資訊將會遺失。

如果您不希望使用 localStoragesessionStorage,可以透過 stateSaveCallbackstateLoadCallback 選項使用替代選項,例如透過 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));
	}
});

相關

以下選項直接相關,並且在您的應用程式開發中也可能很有用。