【问题标题】:Datatable plugin remove rows in DOM on paged tablesDatatable 插件删除分页表上 DOM 中的行
【发布时间】:2017-01-16 04:19:32
【问题描述】:

我的 JQuery 插件 Datatable 有问题,事实上我使用这个插件来显示表格,我也使用 jspdf 插件来生成我的表格的漂亮 pdf。此外,我还从这些表中的数据生成 csv 文件(我自己和没有插件)。但是我注意到,当表被分页时,不在当前页面中的行不在 DOM 中。 但是插件 JSPDF 和我生成 csv 的算法是基于 DOM 的元素。

所以,我想知道当我更改当前页面时,是否有解决方案可以在 DOM 中使用 datatable 插件留下隐藏线。

非常感谢!!!!

编辑: 正如 davidkonrad 在评论中所说,dataTable 分页是基于移除和注入 dom 节点的概念。但是你可以通过 table.rows().nodes() 轻松提取所有节点

【问题讨论】:

  • 不,dataTable分页是基于移除和注入dom节点的概念。但是你可以通过table.rows().nodes()...轻松提取所有节点...
  • 哦,我明白了,谢谢!

标签: jquery datatables


【解决方案1】:

当您转到每个页面时,数据表正在重新绘制。因此,您要做的就是等到表格绘制完毕,然后执行如下所示的任何任务。

$(document).ready( function() {
  $('#example').dataTable( {
    "fnDrawCallback": function( oSettings ) {
      exporPdf();
      exporCSV();
    }
  } );
} );

【讨论】:

  • 非常好的提示,但我认为,如果我每次在绘制表格时调用我的任务,例如生成 pdf 或 csv,并且如果我有很多行,这可能会变得很繁重(我不知道,但我猜)。但这对我来说是一个非常好的提示,我会看看我是否使用您的解决方案或 davidkonrad 的提示。
  • 即使你有很多行,它也只会将行绘制到当前页面 DOM。因此,根据您每页的行数,即 10、25、50、100,它将仅绘制这些行,而不是数据集中的整行
  • 嗯,我明白了,但就我而言,我想生成包含整行的 pdf 或 csv。可能我没看懂你的回答
猜你喜欢
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 2010-12-26
  • 2015-06-13
  • 2016-11-28
  • 1970-01-01
相关资源
最近更新 更多