【问题标题】: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
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: jquery html plugins datatables


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

        "bSort": false
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-12-28
          • 2010-09-28
          • 2017-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-04
          相关资源
          最近更新 更多