我使用的是jquery datatables api index column。我已按照页面上显示的文档设法使表格正常工作。 我还使用Buttons插件打印表格,但是在"索引" - 或者在我的情况下,我将其命名为" Bil" - 列,数字不打印出来。 当我想在Excel和PDF中下载表格后查看数据时,会出现同样的问题。
我不知道这是不是一个错误,因为我无法在其他地方找到问题。我怀疑索引值仅加载到页面但未插入表中。是否有一种解决方法可能使用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将数据加载到表中。谢谢。
答案 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以获取代码和演示。