row().invalidate()
使选定行的 DataTables 中保存的数据无效。
说明
DataTables 会缓存表中各个单元格内容的相关信息,以提高排序和搜索等表格操作的性能。如果你要修改某个单元格的内容(适用于 DOM 数据源表)或数组/对象值(适用于 Ajax/JS 源表),DataTables 不会知道发生了这种情况。该方法可用于告知 DataTables 重新从行的数据源中读取信息(无论该数据源来自 DOM、对象/数组还是任何原始数据源)。
使用 row().data()
或 cell().data()
更新单元格的无效值也是另一种方法。通常,使用 data
方法会优于使用无效方法,因为前者使用的代码较少。不过,当表的某项数据源为可以使用该对象自己的方法对其进行更新的外部对象时,失效方法的优势就显现出来了,你只需通过调用无效方法通知 DataTables 该数据已更改即可。
类型
函数 row().invalidate( [ source ] )
- 说明
使选定行中的信息无效
- 参数
名称 类型 可选 1 source
是 - 默认为 auto 要从中读取新数据的源。
默认情况下,DataTables 会自动从与最初读取数据源完全相同的源(即,DOM 源或 JavaScript 源)中读取该行的最新数据,但可以使用此参数覆盖,并明确告诉 DataTables 应该使用哪种数据读取最新数据。当你进行 Ajax 数据加载,但使用 DOM 修改单元格内容时,这可能很有用。
此属性可设定的值为
auto
- 使用原始数据源data
- 使用 JavaScript 数据结构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
.row(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');
// Invalidate and redraw
table
.row(0)
.invalidate()
.draw();
相关
以下选项与之直接相关,并且在你的应用程序开发中可能也很有用。