我有一个带有表格和两个按钮“主页”和“返回”的 jsp,并且在其中导入了 jquery.datatable.js。
单击“主页”时,页面应加载且不会保存任何分页或过滤器。单击“后退”时,表格应保存所有过滤器和分页。
我尝试在初始化数据表时将“bStateSave”标志设置为真。这始终会加载带有过滤器和分页的表格。
有什么方法可以在单击“后退”按钮时加载已保存状态的表,并在单击“主页”按钮时加载其原始状态
最佳答案
对于 DataTables 1.10:
下面是API functions对于与状态保存相关的 DataTables 1.10:
state()
Get the last saved state of the tablestate.clear()
Clear the saved state of the table.state.loaded()
Get the table state that was loaded during initialisation.state.save()
Trigger a state save.
你需要有 stateSave: true
初始化选项来启用状态保存。然后,当用户点击“主页”按钮时,您可以调用 $('#example').DataTable().state.clear()
清除保存的状态。
对于 DataTables 1.9 及更早版本:
遗憾的是,没有直接的 API 方法来清除保存的状态。
你需要有 bStateSave: true
初始化选项来启用状态保存。
选项 1:使用 document.cookie:
下面是一个旨在清除包含状态数据的 cookie 的 hack。
当用户点击“Home”按钮时,需要执行下面的代码。 重要:将 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;
}
});
});
关于javascript - JQuery1.8 数据表点击按钮保存状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30797848/