我已经对此进行了测试,我问这个问题的原因是它似乎在为不同的表做不同的事情。
我找不到任何关于这是否可配置的文档。我原以为它会将行添加到底部,但我有几个例子,我看到它有时会在顶部甚至中间添加行。看起来很随意。
有任何想法吗?
我已经对此进行了测试,我问这个问题的原因是它似乎在为不同的表做不同的事情。
我找不到任何关于这是否可配置的文档。我原以为它会将行添加到底部,但我有几个例子,我看到它有时会在顶部甚至中间添加行。看起来很随意。
有任何想法吗?
我查看了源代码,fnAddData 调用了内部方法 _fnAddData,该方法添加了一行,如果成功,则返回其在表中的索引。_fnAddData 在底部添加新行(新行的索引等于表中的行数)。
但是,fnAddData 有一个可选参数来重新绘制表格,同时考虑到启用的各种功能。此参数默认为 true,这可能是导致“随机”行为的原因。
浏览 Datatable 的源代码,如 kgiannakaki 所述。该方法会将所有新数据行附加到表的末尾。
“随机”行为的原因是每次添加新行时,除非另有说明,否则该方法将执行整个表的“重绘”。当这样做时,表格将运行多个功能,例如过滤/排序等......并完全重写到页面。本质上,我猜测您正在将随机数据位添加到新行中,这可能会在添加新行时产生“随机”效果。
您可以通过在 fnAddData 调用中添加第二个参数来轻松禁用表格重绘,该参数需要设置为 false。
$(this).fnAddData(data, false);
如果这个问题仍然存在,我会为此问题提交一个错误,因为他们不是这种行为的其他原因。
要禁用排序,以便将新行附加到表的底部,请添加
"bSort": false
到(顶部)您的 DataTable 初始化。