列和列是否互斥?

时间:2019-10-04 07:29:19

标签: javascript datatables

我想用格式化为数组的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函数,我宁愿避免这种情况。

1 个答案:

答案 0 :(得分:1)

否,columnscolumnDefs这两个选项可以同时使用。有关更多详细信息,请参见official documentation

代码无法正常工作的问题是初始化代码中有错字,应该是columnDefs.targets而不是columnDefs.target,见下文:

columnDefs: [{
    targets: 0,
    type: "display",
    render: renderExceptionFct
}