使用 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) 仅在页面刷新时正确加载