【问题标题】:DataTable Uncaught TypeError: column is undefinedDataTable Uncaught TypeError:列未定义
【发布时间】:2021-07-03 10:47:17
【问题描述】:

表格标题

<thead>
    <tr>
        <th rowspan="2">Project</th>
        <th rowspan="2">Status</th> 
        <th colspan="2">Features</th>
    </tr>
    <tr>
        <th>Passing</th>
        <th>Failing</th>
    </tr>
</thead>

JS 代码

$('#projectstable').DataTable({
    "ajax":{
       url: "api/projects",
       "dataSrc": ''
     },
    "columns": [
        { "data": "title" },
        { "data": "status" },
        { "data": "features" , render: "passed"},
        { "data": "features" , render: "failed"},
    ]
});

样本数据

[{
        "id": "demo",
        "title": "demo project",
        "features": {
            "passed": 1,
            "failed": 0,
            "skipped": 0,
            "wip": 0
        }
}]

它在控制台中给出Uncaught TypeError: column is undefined。现在,如果我用column 替换columns,那么它会在警报中给出以下错误

DataTables warning: table id=projectstable - Requested unknown parameter '0' for row 0, column 0. For more information about this error, please see http://datatables.net/tn/4

【问题讨论】:

  • 您定义了 4 列,但 HTML 只有 3 列
  • 表头有 2 行。第 3 列有 2 列在第 2 行

标签: javascript jquery datatables


【解决方案1】:

我发现当 HTML 中有额外的列但数据源中不存在相关列时会出现此错误。它与dataTable 的columns 属性无关。 当数据源中不存在任何属性、null 或 undefined 时,会出现第二个错误。所以我需要使用render来处理它。

{ 
    "data": "status", 
    render: function(data, type) {
       if(!data) return "";
    }
}

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2014-06-02
    • 2021-04-28
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多