使用Localstorage重置数据表状态

时间:2016-05-12 21:59:50

标签: javascript php datatables

我在使用Data Table(v1.10.6)保存功能时遇到问题。

使用以下参数,似乎保存和恢复状态功能正常工作,但在一段随机时间后,状态将被默认表格布局覆盖。这个问题似乎只发生在晚上更换表格后,然后在早上检查网站,发现一切都重置了。数据表通常在一天中保持表格布局,但是有些边缘发生表格布局在白天随机重置。数据表是唯一设置本地存储的位置。

理想的行为是数据表的状态,重新排序或添加列,在用户更改表时会无限期地保持不变。

    stateSave: true,
    stateDuration : 0,
    stateSaveCallback: function(settings, data) {
        localStorage.setItem('DataTables_Asset_List', JSON.stringify(data));
    },
    stateLoadCallback: function(settings) {
        return JSON.parse(localStorage.getItem('DataTables_Asset_List'));
    }

使用的插件:

  • 数据表引导程序
  • ColReorder

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

您正在寻找的是 stateDuration 选项: https://datatables.net/reference/option/stateDuration

如果表保存到localStorage,则此选项定义在返回默认状态之前localStorage中保存状态的使用时间。 stateDuration的默认值为 7200 (或2小时)。

例如,如果用户在没有访问页面/重新加载表格的情况下走了2个小时,那么只需要刷新"刷新"倒数计时器,如果你愿意,那么表格将加载其默认设置。无论localStorage目前是什么。这解释了为什么变化似乎不会在一夜之间持续存在。

总之,增加stateDuration选项以增加表的持久性持续时间。

我希望有所帮助。