所以我使用这个属性 "bStateSave": true 来保存 jQuery Datatable 的状态,但由于某种原因它对我不起作用。当我刷新页面时,它不会保存搜索结果和分页等。是否有其他一些参数需要与这个参数一起使用。我主要是通过这个页面上的信息
http://datatables.net/examples/basic_init/state_save.html
该代码太大而无法发布,我不确定我应该使用什么剪断来发布。在此先感谢您的帮助。
所以我使用这个属性 "bStateSave": true 来保存 jQuery Datatable 的状态,但由于某种原因它对我不起作用。当我刷新页面时,它不会保存搜索结果和分页等。是否有其他一些参数需要与这个参数一起使用。我主要是通过这个页面上的信息
http://datatables.net/examples/basic_init/state_save.html
该代码太大而无法发布,我不确定我应该使用什么剪断来发布。在此先感谢您的帮助。
首先,你要确保你有一个cookie,一旦你加载了你的页面,就跳进chrome,点击“设置”,然后点击隐私部分下的“显示高级设置”,点击内容设置。
下面是来自该站点的代码示例,它在我的网络应用程序中运行良好,并确保您拥有最新版本的插件。
$('#MyExampleGrv').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);
}
});
这段代码的作用是创建一个本地存储而不是 cookie,并使用特定页面而不是仅使用称为 Datatables 的通用标识符,这样如果您在另一个页面上有一个表,就不会发生冲突。这段代码不会做什么,如果您使用 ASP.NET 控件和 gridview,如果您使用 ASP.NET 中内置的通用 CRUD 操作(例如 EDIT/DELETE/UPDATE)和您的编辑,则此代码不会保存分页状态项目在分页第 3 页上,它会在回发后默认为第 1 页,甚至通过 AJAX 进行部分回发。
我知道这个答案不是关于这个旧版本的数据表,但我相信它会对新手有所帮助。
从 2011 年到现在,Datatables API 发生了很大变化。要保存数据表的状态,您可以使用 HTML5 LocalStorage 或 DB(ajax 回调)。要使用 localStorage 启用状态保存,请执行以下调用:
$(document).ready(function() {
$('#datatable').DataTable({
stateSave: true,
});
} );
如果您想使用sessionStorage而不是localStorage:
$(document).ready(function() {
$('#datatable').DataTable({
stateSave: true,
stateDuration:-1 //force the use of Session Storage
});
} );
如果您想使用数据库来避免将它们存储在浏览器中,那么您必须使用选项stateSaveCallback和stateLoadCallback中定义的回调函数。
这是一个包含示例和源代码的教程,向您展示如何实现上述所有方法:Datatables state save client and server-side
在浏览器中进行检查时是否看到 cookie?我正在使用 Chrome 和开发人员工具来查看您发送的链接的当前 cookie。我看到一个名为“datatables.net”的 cookie 存储在我的机器上。您在尝试自定义 DataTables 代码时是否看到此 cookie?