jQuery Datatables - 全局保存过滤器设置

d-b*_*o82 2 jquery datatables local-storage

我正在使用 Datatables 1.10 并使用“saveState”选项将我的过滤器设置保存到本地存储中。这确实很好用,但现在我正在寻找一种使过滤器设置全局化的可能性。

我打开网址:www.example.com/table/1 并进行一些过滤器设置,然后转到 www.example.com/table/2 应应用相同的过滤器设置。

那可能吗?

到目前为止,我打印出了 localStorage,并且可以看到数据表为每个 url 创建了一个唯一的存储条目。

谢谢

d-b*_*o82 6

好吧,我找到了一个很好的解决方案。Datatables 本身有很好的回调来自定义 saveState-Option 以在全局使用它:

 $("#table").dataTable({
    "paging": false,
    "info": false,
    "stateSave": true,
    "stateSaveCallback": function (settings, data) {
        // save the filter settings without connecting it to a unique url
        localStorage.setItem("dataTables_filterSettings", JSON.stringify(data));
    },
    "stateLoadCallback": function (settings) {
        // read out the filter settings and apply
        return JSON.parse(localStorage.getItem("dataTables_filterSettings"));
    },
    "ajax": {
        "url": "www.example.com"
    },
    "columns": [
        { ... },
        { ... }
    ]
});
Run Code Online (Sandbox Code Playgroud)