swa*_*raj 5 javascript pagination state-saving jquery-datatables
我有一个带有表的jsp和两个按钮"home"和"back",并在其中导入了jquery.datatable.js.
单击"主页"时,页面应加载,不保存任何分页或过滤器.并且在单击"返回"时,表格应该保存所有过滤器和分页.
我在初始化数据表时尝试将"bStateSave"标志设置为true.这总是使用过滤器和分页加载表.
有没有什么办法可以点击"返回"按钮加载具有保存状态的表格,点击"主页"按钮时可以加载原始状态
对于数据表 1.10:
以下是DataTables 1.10 与状态保存相关的API 函数:
state()
获取表最后保存的状态state.clear()
清除表的已保存状态。state.loaded()
获取初始化期间加载的表状态。state.save()
触发状态保存。
您需要具有stateSave: true初始化选项才能启用状态保存。然后,当用户单击“Home”按钮时,您可以调用$('#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;';
Run Code Online (Sandbox Code Playgroud)
选项 2:使用 fnStateLoadParams:
或者,您可能希望使用fnStateLoadParams 回调函数来确定何时加载或忽略状态数据。通过分别向变量分配true或来确定页面加载时是否应加载或忽略状态:falseloadStateParams
$(document).ready( function() {
$('#example').dataTable( {
"bStateSave": true,
"fnStateLoadParams": function (oSettings, oData) {
// Disallow state loading by returning false
var loadStateParams = false;
return loadStateParams;
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3546 次 |
| 最近记录: |