Добавить столбец с номером строки в таблицы данных jquery - PullRequest
11 голосов
/ 29 июля 2011

Я хочу, чтобы таблицы данных jQuery автоматически создавали столбец с номерами строк в первом столбце, как таблица данных в VB.

Это выглядит так:

enter image description here

Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

40 голосов
/ 02 августа 2016

Просто напишите функцию рендеринга:

{
    "data": "id",
    render: function (data, type, row, meta) {
        return meta.row + meta.settings._iDisplayStart + 1;
    }
}
11 голосов
/ 29 июля 2011

Вы просто определяете пустой столбец в aoColumns.

Затем в функции fnRowCallback вы просто редактируете столбец так, как вам нравится. Этот обратный вызов запускается каждый раз, когда создается новая строка.

Обычно, если ваш первый столбец имеет номер строки, вы можете просто сделать это в fnRowCallback:

var index = iDisplayIndex +1;
$('td:eq(0)',nRow).html(index);
return nRow;
2 голосов
/ 15 февраля 2018

Как я прокомментировал, ответ @Pehmolelu и @Tao Wang мне не помог. Мне пришлось пойти на то, что советует столбец индекса DataTables: https://datatables.net/examples/api/counter_columns.html

Обратите внимание, что в случае со мной, даже конфигурация столбца происходит через вызов API моего сервера веб-приложений (и иногда у меня есть счетчики строк, а иногда нет), перед этим столбцом счетчика находятся 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']]
});

Существует также плагин, который вы можете использовать вместо собственного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...