jQuery数据表 - 索引列打印/下载问题

时间:2015-10-12 12:10:20

标签: javascript datatables

我使用的是jquery datatables api index column。我已按照页面上显示的文档设法使表格正常工作。 我还使用Buttons插件打印表格,但是在"索引" - 或者在我的情况下,我将其命名为" Bil" - 列,数字不打印出来。 当我想在Excel和PDF中下载表格后查看数据时,会出现同样的问题。

我想要打印表时的输出: example table

我不知道这是不是一个错误,因为我无法在其他地方找到问题。我怀疑索引值仅加载到页面但未插入表中。是否有一种解决方法可能使用javascript在表格中插入值?

以下是负责索引的数据表的javascript:

//Datatable
var t = $('#tablePelajarLama').DataTable({
     dom: 'lBfrtip',
     buttons: [
         'copy', 'excel', 'pdf', 'print'
     ],
   "columnDefs": [ {
        "searchable": false,
        "orderable": false,
        "targets": 0
   } ],
   "order": [[ 1, 'asc' ]]
 });

//index counter
t.on( 'order.dt search.dt', function () {
  t.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
       cell.innerHTML = i+1;
  } );
} ).draw();

另外,如果以任何方式影响流程,我会使用PHP将数据加载到表中。谢谢。

1 个答案:

答案 0 :(得分:4)

  

<强>解

您需要使用cell().invalidate() API方法告诉DataTables重新读取DOM中包含索引的单元格的信息。

t.on( 'order.dt search.dt', function () {
   t.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
      cell.innerHTML = i + 1;
      t.cell(cell).invalidate('dom'); 
   } );
} ).draw();
  

<强>样本

请参阅this jsFiddle以获取代码和演示。