Я хочу создать таблицу из данных 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
, но это будет означать отправку функции рендеринга каждый раз, и я бы предпочел этого избежать.