我有一个带有表格和两个按钮“home”和“back”的jsp,并在其中导入了jquery.datatable.js。
单击“主页”时,页面应加载而无需保存任何分页或过滤器。单击“返回”后,表格应保存所有过滤器和分页。
我尝试在初始化数据表时将“bStateSave”标志设置为真。这总是使用过滤器和分页加载表格。
有什么方法可以在单击“返回”按钮时加载具有保存状态的表格,并在单击“主页”按钮时加载其原始状态
我有一个带有表格和两个按钮“home”和“back”的jsp,并在其中导入了jquery.datatable.js。
单击“主页”时,页面应加载而无需保存任何分页或过滤器。单击“返回”后,表格应保存所有过滤器和分页。
我尝试在初始化数据表时将“bStateSave”标志设置为真。这总是使用过滤器和分页加载表格。
有什么方法可以在单击“返回”按钮时加载具有保存状态的表格,并在单击“主页”按钮时加载其原始状态
对于数据表 1.10:
以下是DataTables 1.10 与状态保存相关的API 函数:
state()
获取表最后保存的状态state.clear()
清除表的保存状态。state.loaded()
获取初始化期间加载的表状态。state.save()
触发状态保存。
您需要有stateSave: true
初始化选项才能启用状态保存。然后,当用户单击“主页”按钮时,您可以调用$('#example').DataTable().state.clear()
以清除已保存的状态。
对于 DataTables 1.9 及更早版本:
不幸的是,没有直接的 API 方法来清除保存的状态。
您需要有bStateSave: true
初始化选项才能启用状态保存。
选项 1:使用 document.cookie:
下面是一个旨在清除包含状态数据的 cookie 的 hack。当用户单击“主页”按钮时,您需要执行以下代码。重要提示:替换example
为您的表 ID。
// Reset current state
document.cookie = name + 'SpryMedia_DataTables_' + 'example' + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
选项 2:使用 fnStateLoadParams:
或者,您可能希望使用fnStateLoadParams 回调函数来确定何时加载或忽略状态数据。true
通过分配或false
分别给loadStateParams
变量来确定在页面加载时是否应该加载或忽略状态:
$(document).ready( function() {
$('#example').dataTable( {
"bStateSave": true,
"fnStateLoadParams": function (oSettings, oData) {
// Disallow state loading by returning false
var loadStateParams = false;
return loadStateParams;
}
});
});