使用jQuery DataTables插件,fnAddData()是否在html表的顶部或底部添加行?

我测试了这个,我问这个问题的原因是它似乎为不同的表做了不同的事情。

如果这是可配置的,我找不到任何文档。 我本来以为它会将行添加到底部,但我有一些例子,我看到它在顶部甚至在中间添加行。 这看起来很随机。

有任何想法吗?

我查看了源代码,fnAddData调用了内部方法_fnAddData,它添加了一行,如果成功,则返回表中的索引。 _fnAddData在底部添加新行(新行的索引等于表中行的数量)。

但是,fnAddData有一个可选参数来重绘表,同时考虑了启用的各种function。 此参数默认为true,这可能导致“随机”行为。

按照kgiannakaki的说明浏览Datatable的源代码。 该方法将所有新数据行附加到表的末尾。

“随机”行为的原因是,每次添加新行时,除非另有说明,否则该方法将执行整个表的“重绘”。 当这样做时,表通过多个function运行,如过滤/排序等等……并完全重写到页面。 基本上我猜你是在将新的行中添加随机位数据,这可能会产生“随机”效果,无论何时添加新行。

您可以通过在fnAddData调用中添加第二个参数来轻松禁用表重绘,该参数需要设置为false。

$(this).fnAddData(data, false); 

如果此问题仍然存在,我会为此问题提交错误,因为他们没有其他原因导致此行为。

要禁用排序,以便将新行附加到表的底部,请添加

 "bSort": false 

到DataTable初始化的(顶部)。