我有一个DataTable表,该表首先由XQuery填充数据库中的整个数据集来填充。每个记录都有一个超链接,可将用户带到“详细”页面。当用户从详细信息中返回时,他们应该在离开表格时找到该表格。
该表的主页还具有高级搜索表单,用户可以从中过滤结果。提交表单时,JavaScript这次通过XHR执行另一个查询,并重新填充表格。
现在,这与完整记录表(即当用户不执行高级搜索时)都很好。我还在表的初始化中添加了stateSave: true
选项,以便当用户从“详细信息”页面返回时在离开表时找到该表。
当执行高级搜索时,问题开始。在那种情况下,当进入“详细信息”页面并返回表时,不再存在,因此我需要使用我保存在sessionStorage中的参数来请求新的XHR,这很好。但是,然后,我需要按原样放置桌子。我怎么做?如果我添加:
var table = $('#mainTable').DataTable();
$('#mainTable').on('page.dt', function () {
var page = table.page();
sessionStorage.setItem('pageTable', page);
table.state.save()
然后使用page
将高级搜索表获取到用户正在从table.page(parseInt(page)).draw('page')
查询的页面,该新XHR查询由[详细]页面中的[返回]按钮触发了新的XHR查询,在全记录表上被忽略。另外,我想保存诸如列排序之类的内容。有没有一种简单的方法可以在用户单击超链接时保存高级搜索表的当前状态,并完全按照用户返回时的状态还原该表,而无需在后台执行新的高级搜索查询,还是执行然后在用户离开主页转到详细信息页面时重新激活所有参数(页面,排序,滚动)的表?