DataTable 刷新后保持状态
DataTable keep state after refresh
我有一个 table 它会在一段时间内重新加载其数据,并且它应该在每次重新加载后保持状态。我试过使用 "stateSave": true
但没有成功。
有没有办法在每次数据重新加载后保持状态(搜索、分页)? clear
是让 table 失去状态的那个吗?
这是我的代码 - JsFiddle
我对 DataTables 没有太多经验,所以请保持温和。
正在保存状态,但其中一些正在被重新加载循环中的代码覆盖。
正在保存的状态:
- 排序(点击列标题)
- 过滤(使用全局过滤器输入控件)。
- 每页记录数(“显示 x 个条目”)
步骤:(1) 我打开我的网页副本,并更改这些项目。 (2) 我关闭网页。 (3) 我re-open这个页面。以上项目保留。
正在被您的代码覆盖的状态:
- 分页(从第 1 页移动到第 2 页)
如果我这样做,那么当我关闭并 return 页面时,我的分页选择不再在第 2 页上。
但是分页选择被实际保存了。
只是当页面 re-opened 时,您的代码会立即覆盖保存的值,在第一个 table 绘制之前:
else table.clear().rows.add(data).draw();
因此,您永远看不到用户应用的先前保存的分页。
清除 table 并重新加载数据时,基本上就是应用新的分页,覆盖您保存的分页。
状态保存通过将数据保存到浏览器的本地存储来工作。它是存储页面更改(第 1 页到第 2 页)的地方。
您可以通过打开浏览器工具 (F12) 并找到 table 的本地存储条目来亲眼看到。
当您转到第 2 页时,您会看到:
这意味着:从第 10 条记录开始,每页显示 10 条记录
(注意第10条记录实际上是第11条,因为索引是zero-based)。
如果您在浏览器中观察这个 start
值,您会看到它在刷新代码运行时重置为零。
我有一个 table 它会在一段时间内重新加载其数据,并且它应该在每次重新加载后保持状态。我试过使用 "stateSave": true
但没有成功。
有没有办法在每次数据重新加载后保持状态(搜索、分页)? clear
是让 table 失去状态的那个吗?
这是我的代码 - JsFiddle
我对 DataTables 没有太多经验,所以请保持温和。
正在保存状态,但其中一些正在被重新加载循环中的代码覆盖。
正在保存的状态:
- 排序(点击列标题)
- 过滤(使用全局过滤器输入控件)。
- 每页记录数(“显示 x 个条目”)
步骤:(1) 我打开我的网页副本,并更改这些项目。 (2) 我关闭网页。 (3) 我re-open这个页面。以上项目保留。
正在被您的代码覆盖的状态:
- 分页(从第 1 页移动到第 2 页)
如果我这样做,那么当我关闭并 return 页面时,我的分页选择不再在第 2 页上。
但是分页选择被实际保存了。
只是当页面 re-opened 时,您的代码会立即覆盖保存的值,在第一个 table 绘制之前:
else table.clear().rows.add(data).draw();
因此,您永远看不到用户应用的先前保存的分页。
清除 table 并重新加载数据时,基本上就是应用新的分页,覆盖您保存的分页。
状态保存通过将数据保存到浏览器的本地存储来工作。它是存储页面更改(第 1 页到第 2 页)的地方。
您可以通过打开浏览器工具 (F12) 并找到 table 的本地存储条目来亲眼看到。
当您转到第 2 页时,您会看到:
这意味着:从第 10 条记录开始,每页显示 10 条记录
(注意第10条记录实际上是第11条,因为索引是zero-based)。
如果您在浏览器中观察这个 start
值,您会看到它在刷新代码运行时重置为零。