我有一个使用jQuery Datatables插件的网站,这个插件大部分工作得非常好。
但是,由于某种原因,它的状态保存代码没有被触发。初始化时设置的其他选项正在被正确选取,但由于某种原因,状态保存代码不是;使用直接初始化参数或专门定义fnStateSave和fnStateLoad参数(从http://datatables.net/blog/localStorage_for_state_saving复制示例中的代码),没有任何效果,cookie等设置的证据。这是完全标准的,数据从DOM开始,用于测试其他参数集。
我应该知道一个非显而易见的设置或限制吗?
答案 0 :(得分:7)
要完成这项工作,您需要 DataTables 1.8或更高版本......
bStateSave: true
启用或禁用状态保存。启用时,将使用cookie来保存表格显示信息,例如分页信息,显示长度,过滤和排序。因此,当最终用户重新加载页面时,显示屏将与您之前设置的内容相匹配。
可以找到一个完整的工作示例here (在Chrome中调试此示例显示正在调用fnStateSave
和fnStateLoad
。)
执行以下操作:
$(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>