我想用格式化为数组的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
选项,但这意味着每次都发送render函数,我宁愿避免这种情况。
答案 0 :(得分:1)
否,columns
和columnDefs
这两个选项可以同时使用。有关更多详细信息,请参见official documentation。
代码无法正常工作的问题是初始化代码中有错字,应该是columnDefs.targets
而不是columnDefs.target
,见下文:
columnDefs: [{
targets: 0,
type: "display",
render: renderExceptionFct
}