Добавить столбец номера строки в jQuery datatables
Я хочу, чтобы jQuery datatables автоматически создавал столбец номера строки в первом столбце, как datagrid в VB.
Это выглядит так:
кто-нибудь знает, как это сделать?
3 ответов
вы просто определяете пустой столбец в aoColumns.
затем в функции fnRowCallback вы просто редактируете столбец, как вам нравится. Этот обратный вызов выполняется каждый раз при создании новой строки.
в основном, если ваш первый столбец имеет номер строки, вы можете просто сделать это в fnRowCallback:
var index = iDisplayIndex +1;
$('td:eq(0)',nRow).html(index);
return nRow;
просто написать функцию render:
{
"data": "id",
render: function (data, type, row, meta) {
return meta.row + meta.settings._iDisplayStart + 1;
}
}
Как я прокомментировал, ответ @Pehmolelu и @Tao Wang не работал хорошо для меня. Я должен был пойти с тем, что советует столбец индекса DataTables:https://datatables.net/examples/api/counter_columns.html
обратите внимание, что в случае меня даже конфигурация столбца снижается через вызов API моего сервера webapp (и иногда у меня есть счетчики строк, иногда нет), перед этим столбцом счетчика есть 3 системных столбца, поэтому индекс столбца равен 3, но вы нужно настроить его в соответствии с вашими потребностями.
t.on('order.dt search.dt', function () {
t.column(3, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
cell.innerHTML = i+1;
});
}).draw();
кроме того, если ваше решение не такое сложное, как мое, ссылка выше также показывает, как вы добавляете этот столбец несортируемым + неисследованным способом (снова вам нужно настроить индекс столбца для ваших нужд):
var t = $('#example').DataTable({
"columnDefs": [{
"searchable": false,
"orderable": false,
"targets": 3
}],
"order": [[4, 'asc']]
});
есть также плагин, который вы можете использовать вместо своего собственного кода.