rows().invalidate()
自:DataTables 1.10 起
使所选行的 DataTables 中保存的数据失效。
说明
DataTables 保存着表格中每个单元格内容的缓存信息,以提高排序和搜索等表格操作的性能。如果你修改了单元格的内容(对于 DOM 数据源表格)或数组/对象值(对于 Ajax/JS 源表格),DataTables 不知道发生了此事。此方法可用于指示 DataTables 重新从该行的(无论是来自 DOM 还是对象/数组——无论最初的数据源是什么)数据源读取信息。
当更改单元格值时,这提供了一个使用 row().data()
和 cell().data()
的替代方法。通常,使用 data
方法会优于失效方法,因为前者使用的代码更少,然而失效方法在表格数据源是可以通过该对象的自身方法更新的外部对象时确实大放异彩。
类型
函数 rows().invalidate( [ source ] )
- 说明
使选定行的信息失效
- 参数
名称 类型 可选 1 source
是 - 默认值:自动 读取新数据的源数据。
默认情况下,DataTables 会从与最初读取数据相同的源(例如,DOM 源或 JavaScript 源)自动读取该行的最新数据,但此参数可用于覆盖该设置,并明确告诉 DataTables 应使用哪一个源来读取最新数据。如果你正在加载 Ajax 数据,但使用 DOM 来修改单元格的内容,这可能很有用。
此属性可采用以下值
auto
- 使用原始数据源data
- 使用 Java 脚本数据结构dom
- 使用当前保存于 DOM 中的数据
- 返回
包含结果集中选定的行引用的 DataTables API 实例
示例
使用 jQuery 修改单元格的内容,然后使 DataTables 保存的行失效
var table = new DataTable('#myTable');
var tr = $('#example tbody tr:eq(0)');
tr.find('td:eq(0)').html('Updated');
table
.rows(tr)
.invalidate()
.draw();
使用数据对象实例和失效来在外部数据更改后更新表格
var pupils = [new Pupil(), new Pupil(), new Pupil(), new Pupil()];
// Create table with data set
var table = new DataTable('#myTable', {
data: pupils
});
// Modify the data in the data set
pupils[0].name('Fred Green');
pupils[3].name('Fiona Wilder');
// Invalidate and redraw all rows
table
.rows()
.invalidate()
.draw();
相关
以下选项与本方法直接相关,在你的应用程序开发中也可能很有用。