JQuery DataTable 序號列的顯示
阿新 • • 發佈:2018-11-10
因專案需求,查詢出DataTable顯示序號的幾種方式:
1.前端分頁。
首先設定該序號列為空列,即
{"data": null,
"targets": 0 } //表示:第一列的值暫時設為null。
在dataTable設定引數完成後,增加以下程式碼:
/* 設定第一列 - 序列化 */
ResultTable.on('order.dt search.dt', function() {
grpResultTable.column(0, {
search: 'applied',
order: 'applied'
}).nodes().each(function(cell, i) {
cell.innerHTML = i + 1;
});
}).draw();
//ResultTable為dataTable設定的返回值。即 var ResultTable = $("#groupTable").dataTable({...}).api();
該方法能有效的解決前端分頁的問題。
2. 後臺分頁
方法1:同樣設定該序號列為空列。
在dataTable的引數設定中加入以下設定:
drawCallback : function() { // 序號列
var api = this.api();
var startIndex = api.context[0]._iDisplayStart; // 獲取本頁開始的條數
api.column(0).nodes().each(function(cell, i) {
cell.innerHTML = startIndex + i + 1;
});
}
此方法可以解決後臺分頁的問題,但是,當序號列所佔據的寬度較小時,可能帶來翻頁時頁面閃爍的問題。
方法2:在設定序號列時,進行顯示,程式碼如下:
{"data" : null,
"render" : function(data, type, full, meta){
return meta.row + 1 + meta.settings._iDisplayStart;
}}, // 序號
此方法能有效解決分頁的序號顯示,同時避免了在翻頁時重繪可能帶來的閃爍問題。
以上。有問題請聯絡我喲,共同成長,共同進步!