在Jquery Datatable中刷新排序缓存
我可以看到,当使用table.columns()。cache()方法首次初始化表时,Jquery数据表会生成一个排序缓存。 我的一个列包含td元素,其中包含带有类的span。 例:
... ... ... ... ...
我对这个特定列的排序取决于跨度上的类。 我已经编写了一个基于文本的列排序function来执行此操作,如此处所述。
在我的表中,我以这种方式动态更新行:
var id = //some guid var newClassToAdd = 'yellow'; var rows = table.rows().nodes(); for (var i = 0; i < rows.length; i++) { var row = $(rows[i]); var span = row.find('td span.SpanColors') if (span && span.data('id') == id) { span.removeClass('red blue yellow'); span.addClass(newClassToAdd); } }
我遇到的问题是,当我这样做时,缓存不会更新,因此在排序时,行的显示顺序与更新它们之前的顺序相同。
在更新行之后是否有一些方法可用于更新此缓存? 我搜索过互联网,但显然这不是很多人都有的问题。 也许如果我以不同(更合法)的方式更新我的行,缓存可能会自行刷新?
完成修改单元格内容后,您可以使用row().invalidate()
。
table.row(rows[i]).invalidate('dom');
在所有行都无效后,您可能需要调用draw()
来重绘表。