jQuery Datatables插件没有保存状态cookie?

时间:2013-08-08 19:26:26

标签: jquery jquery-datatables

我有一个使用jQuery Datatables插件的网站,这个插件大部分工作得非常好。

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

我应该知道一个非显而易见的设置或限制吗?

1 个答案:

答案 0 :(得分:7)

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

bStateSave: true

  

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

取自DataTables Documentation

可以找到一个完整的工作示例here (在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>