stateSave
状态保存 - 刷新页面时恢复表格状态。
描述
启用或禁用状态保存。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));
}
});
相关
下列选项直接相关,并可能对你的应用程序开发也有帮助。