使用 jQuery DataTables 插件,fnAddData() 是不是将行添加到 html 表格的顶部或底部?

Posted

技术标签:

【中文标题】使用 jQuery DataTables 插件,fnAddData() 是不是将行添加到 html 表格的顶部或底部?【英文标题】:Using jQuery DataTables plugin, does fnAddData() add rows to the top or bottom of an html table?使用 jQuery DataTables 插件,fnAddData() 是否将行添加到 html 表格的顶部或底部? 【发布时间】:2010-12-27 18:54:33 【问题描述】:

我已经对此进行了测试,我问这个问题的原因是它似乎对不同的表做了不同的事情。

我找不到任何关于这是否可配置的文档。我原以为它会将行添加到底部,但我有几个例子,我看到它有时会在顶部甚至中间添加行。看起来很随意。

有什么想法吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

按照 kgiannakaki 的解释,浏览 Datatable 的源代码。该方法会将所有新数据行按应有的方式附加到表的末尾。

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

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

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

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

【讨论】:

【参考方案3】:

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

"bSort": false

到(顶部)您的 DataTable 初始化。

【讨论】:

以上是关于使用 jQuery DataTables 插件,fnAddData() 是不是将行添加到 html 表格的顶部或底部?的主要内容,如果未能解决你的问题,请参考以下文章

带有 DataTables 的表中的外部链接(jQuery 插件)

如何在DataTables 1.10中使用JQuery DataTables“input”插件

jQuery Datatables Ultimate 日期/时间排序插件

jQuery 插件 (DataTables) 仅在页面刷新时正确加载

Datatables快速入门开发--一款好用的JQuery表格插件

JQuery插件datatables相关api