Datatables найти имя столбца - PullRequest
0 голосов
/ 28 марта 2019

Я использую следующий код в DataTables для рисования таблицы:

projectRevenue = $('#projectRevenue').DataTable({
    serverSide: true,
    processing: true,
    scrollX: true,
    stateSave: true,
    ajax: {
            url: "...",
            type: "GET",
            dataType: "JSON"
        },
    columns: [
        { name: 'id', data: 'id' , searchable: false , visible: false },
        { name: 'year', data: 'year' , searchable: true , visible: true , className: "rev_update" },
        { name: 'product_code', data: 'product_code' , searchable: true , visible: true , className: "rev_update" },
        { name: 'jan', data: 'jan' , searchable: true , visible: true , className: "rev_update" },
        { name: 'feb', data: 'feb' , searchable: true , visible: true , className: "rev_update" },
        { name: 'mar', data: 'mar' , searchable: true , visible: true , className: "rev_update" },
        { name: 'apr', data: 'apr' , searchable: true , visible: true , className: "rev_update" },
        { name: 'may', data: 'may' , searchable: true , visible: true , className: "rev_update" },
        { name: 'jun', data: 'jun' , searchable: true , visible: true , className: "rev_update" },
        { name: 'jul', data: 'jul' , searchable: true , visible: true , className: "rev_update" },
        { name: 'aug', data: 'aug' , searchable: true , visible: true , className: "rev_update" },
        { name: 'sep', data: 'sep' , searchable: true , visible: true , className: "rev_update" },
        { name: 'oct', data: 'oct' , searchable: true , visible: true , className: "rev_update" },
        { name: 'nov', data: 'nov' , searchable: true , visible: true , className: "rev_update" },
        { name: 'dec', data: 'dec' , searchable: true , visible: true , className: "rev_update" },
...

Чтобы иметь возможность манипулировать данными, я вставляю некоторые атрибуты для каждого тд с этой конфигурацией:

columnDefs: [{
      "targets": [1,2,3,4,5,6,7,8,9,10,11,12,13,14],
      "createdCell": function (td, cellData, rowData, row, col) {
        $(td).attr('contenteditable','true');
        $(td).attr('data-id',rowData.id);
      }
    }],

Я хотел бы добавить имя столбца в качестве атрибута, но нигде не могу найти способ получить эти данные. Поэтому я хотел бы что-то вроде:

$(td).attr('data-id',columns(this).name);

Но это не работает.

1 Ответ

0 голосов
/ 28 марта 2019

Ваша попытка не удалась, поскольку this в вашем контексте не то, что вы думаете. Я думаю, следующий код даст ожидаемый результат:

const dataTable = $('#projectRevenue').DataTable();
$(td).attr('data-id', dataTable.column(col).header().innerText)

Однако, если вы хотите сослаться на свойство объекта данных источника, вы можете сделать:

const dataTable = $('#projectRevenue').DataTable();
$(td).attr('data-id', dataTable.column(col).dataSrc())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...