Являются ли columDefs и столбцы взаимоисключающими? - PullRequest
0 голосов
/ 04 октября 2019

Я хочу создать таблицу из данных JSON, отформатированных как массивы. В этой таблице заголовки столбцов являются динамическими (это номера недель), а функция рендеринга для определенного столбца - нет. Поэтому я хотел использовать опции columns для заголовка и columnDefs для функции рендеринга.

Вот что у меня есть:

var messagesDataRaw = {
    data: [
        ["03", "129", "129", "77.36%"],
        ["40", "172", "396", "10.32%"],
        ["41", "614", "180", "10.29%"],
        ["43", "155", "221", "9.30%"]
], 
    columns: [
        { title: 'team' },  
        { title: '32' }, 
        { title: '33' }, 
        { title: 'rate' }
    ]};
var messagesData = messagesDataRaw.data;
var messagesCol = messagesDataRaw.columns;

var renderExceptionFct = function(data, type, row, meta) {
    return '<a target=\"_blank\"  href=\"http://URL_TO_TEAM#EXCEPTION_' + data.trim() + '\">' + data + '</a>';
};

$('#messages_datatable').DataTable( {
    data: messagesData,
    columns: messagesCol,
    paging: false,
    ordering: false,
    searching: false,
    info: false,
    columnDefs: [{
        target: 0,
        type: "display",
        render: renderExceptionFct
    }
]});

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

1 Ответ

1 голос
/ 04 октября 2019

Нет, обе опции columns и columnDefs могут использоваться одновременно. См. официальную документацию для получения более подробной информации.

Проблема с вашим кодом не работает в том, что у вас есть опечатка в вашем коде инициализации, это должно быть columnDefs.targets ине columnDefs.target, см. ниже:

columnDefs: [{
    targets: 0,
    type: "display",
    render: renderExceptionFct
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...