数据表(jQuery的表插件)在离开和返回数据表时继续您离开的地方


DataTables (Table plug-in for jQuery) continue where you left off when navigating away from and back to a DataTable

我一直在使用datattables使数据库数据易于网站管理员搜索。我收到了很多请求,希望用户在点击一个条目并导航回表时能够继续他们在DataTable中离开的地方。我知道我可以从头开始,并可能通过一个主要的服务器端解决方案将这个功能带到表中,但我希望有一种稍微简单的方法来捕获客户端上的datatable数据,并将其提供给我的服务器端应用程序,以便在他们导航回它时能够重新绘制数据表。我想要坚持使用DataTables的主要原因是,我正在为近50个不同的数据库表动态使用它,我真的不想为所有这些表实现一个完全不同的解决方案。我更愿意以这样一种方式使用datatable,即我可以为所有50个页面动态地将此功能添加到datatable中。任何有帮助的指示将不胜感激。

可能需要注意的是,我在服务器端使用PHP。(更具体地说是Symfony2框架)。

DataTables有一些内置的功能来处理这个问题。文档将此称为"状态保存"。

From the docs:

DataTables可以选择保存表的状态(分页位置,排序状态等),以便在用户重新加载页面时可以恢复,或者在访问子页面后返回页面。

这是使用您传递给DataTables方法的配置对象中的stateSave选项启用的,如下所示:

$(document).ready(function() {
    $('#example').dataTable( {
        stateSave: true
    } );
} );

您还可以使用stateDuration选项控制保存的时间长度。

请注意文档中的警告:

内置的状态保存方法使用HTML5 localStorage和sessionStorage api来有效地存储数据。请注意,这意味着内置的状态保存选项将无法在IE6/7中工作,因为这些浏览器不支持这些api。

datatable提供stateSaveCallbackstateLoadCallback选项来解决这个问题,如果你需要支持那些旧的浏览器(例如,通过使用cookie或服务器端解决方案)。

完整的文档可以在这里找到:https://datatables.net/examples/basic_init/state_save.html

你可能要进入浏览器历史操作和查看HTML5 history. pushstat。网上有很多很好的教程。看一下:

http://diveintohtml5.info/history.html

查看历史操作的更多信息