首页 > 解决方案 > 数据表 column.render

问题描述

我正在使用数据表,并希望根据单元格包含的值覆盖单元格的内容。我在底层数据库中使用“1”标记为真,使用“0”标记为假。我正在尝试使用 Columndefs 渲染函数来执行此操作。

这是我的代码..

xample_table = $('#treatment_list').DataTable(
    {
    select: true,
    destroy: true,
     "order": [ 0, 'desc' ],
        data:json,
        columns : [
            {'data':'treatment_name'},
            {'data':'description'},
             {'data':'measured_in'},
            {'data':'exclusive'}
            ],
       "columnDefs": [
            {      
              "targets":3,
              "data" : "exclusive",
                "render": function ( data, type, row ) {
                    if (type === 'display'){
               
                        if (row.exclusive == '0')
                            {
                             return 'No';
                            }
                        else
                         return 'Yes';
                    }
                    
                    
                }
            }
        ]

}

);

问题是我从读取的数据表中收到一条错误消息。

DataTables 警告:表 id=treatment_list - 请求第 0 行第 3 列的未知参数“独占”...。

除了错误消息之外,它实际上正在工作。

标签: datatables

解决方案


感谢您的建议,但是 json 很好,其他变量并没有透露太多,因为我在发布之前已经控制台记录了它们。我确实找到了解决方案并将其发布在这里以防万一它对其他人有帮助。这个表达式有效:

 "columnDefs": [
        {
            "render": function ( data, type, row ) {
                if (data =='1') {
                    return "True" ;
                    
                }
                else{
                    return "False" ;
                }
                
            },
            "targets": [3]
        }
    ]

在我发现的所有示例中,它们通常包含受影响列的名称,我认为这就是导致错误消息的原因,而-您实际上只需要包含“目标”:[n] where 'n'是列号。也许这取决于表的构造方式?

谢谢。


推荐阅读