javascript - JQuery1.8 数据表点击按钮保存状态

标签 javascript pagination jquery-datatables state-saving

我有一个带有表格和两个按钮“主页”和“返回”的 jsp,并且在其中导入了 jquery.datatable.js。

单击“主页”时,页面应加载且不会保存任何分页或过滤器。单击“后退”时,表格应保存所有过滤器和分页。

我尝试在初始化数据表时将“bStateSave”标志设置为真。这始终会加载带有过滤器和分页的表格。

有什么方法可以在单击“后退”按钮时加载已保存状态的表,并在单击“主页”按钮时加载其原始状态

最佳答案

对于 DataTables 1.10:

下面是API functions对于与状态保存相关的 DataTables 1.10:

state()
Get the last saved state of the table

state.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回调函数以确定何时加载或忽略状态数据。通过将 truefalse 分别分配给 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/

相关文章:

javascript - 将两个变量从 xml 附加到 html

javascript - 放置div1和div2 onclick事件的内容

sql - 实现分页的有效方法

javascript - jQuery Datatables 分页设置

javascript - 过滤 jQuery 数据表时如何忽略 HTML?

javascript - 将输入字段中的值属性绑定(bind)到 JsViews Observables

javascript - 如何更改任何图表水平仪表中的标记标签?

javascript - 数据表分页隐藏 1 2 3 页按钮,仅具有下一个 - 上一个按钮

cakephp - cakephp如何在同一个页面分别对三个div进行分页?

twitter-bootstrap - jQuery 数据表在隐藏时初始化时被破坏