{hero}

stateSave

自 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));
	}
});

相关

下列选项直接相关,并可能对你的应用程序开发也有帮助。