6

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

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

有任何想法吗?

4

3 回答 3

12

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

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

于 2009-12-21T09:07:06.933 回答
5

浏览 Datatable 的源代码,如 kgiannakaki 所述。该方法会将所有新数据行附加到表的末尾。

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

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

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

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

于 2009-12-23T20:50:32.110 回答
4

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

"bSort": false

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

于 2014-03-21T19:51:17.880 回答