3

我有一个使用 jQuery Datatables 插件的站点,它大部分都运行良好。

但是,由于某种原因,它的状态保存代码没有被触发。初始化时设置的其他选项被正确选择,但由于某种原因,状态保存代码没有;使用直接初始化参数或专门定义 fnStateSave 和 fnStateLoad 参数(从http://datatables.net/blog/localStorage_for_state_saving的示例中复制代码)没有任何效果的证据,cookie 等设置。这一切都是完全标准的,从 DOM 开始的数据,为了测试没有其他参数集。

有没有我应该做的不明显的设置或我应该知道的限制?

4

1 回答 1

7

要完成这项工作,您需要DataTables 1.8 或更高版本...

bStateSave: true

启用或禁用状态保存。启用后,cookie 将用于保存表格显示信息,例如分页信息、显示长度、过滤和排序。因此,当最终用户重新加载页面时,显示将与您之前设置的内容相匹配。

取自DataTables 文档

可以在此处找到完整的工作示例 (在 Chrome 中调试此示例同时显示fnStateSavefnStateLoad被调用。)

它执行以下操作:

$(document).ready(function () {
    $('#example').dataTable({
        "bStateSave": true,
        "fnStateSave": function (oSettings, oData) {
            localStorage.setItem('DataTables_' + window.location.pathname, JSON.stringify(oData));
        },
        "fnStateLoad": function (oSettings) {
            var data = localStorage.getItem('DataTables_' + window.location.pathname);
            return JSON.parse(data);
        }
    });
});

仅使用以下脚本:

<script type="text/javascript" language="javascript" src="jquery.js"></script>
<script type="text/javascript" language="javascript" src="jquery.dataTables.js"></script>
于 2013-08-08T19:33:02.197 回答