DataTable - 将select复选框放在第一列时出错

时间:2018-04-11 11:36:49

标签: javascript datatables

我知道它已经解决了,但我还没有让它发挥作用。我使用带有resposnive和serveride的DataTable Editor。当我将复选框放在第一列中时,我收到错误,如:

JS:

var table = $('#mytable').DataTable( {
    dom: "rt",
    ajax: {
        url: "/source.php",
        type: "POST",
        data: function (d) { 

        }
    },
    serverSide: true,
    processing: true,
    select: {
        style:    'os',
        selector: 'td:first-child'
    },              
    columns: [
        {
            data: null,
            defaultContent: "",
            className: "select-checkbox",
            orderable: false, 
            targets:   0            
        },                                        
        { data: "logo" },
        { data: "name" },   
        { data: "product" }                                                
    ]                            
} ); 

错误信息:

DataTables警告:table id = mytable - 未知字段:(索引0)

php:

Editor::inst( $db, 'table' )
    ->fields(
        Field::inst( 'logo' ),
        Field::inst( 'url' ),       
        Field::inst( 'name' ),
        Field::inst( 'product' )              
    )

... wenn将最后一栏列入其中:

    ...
    columns: [                                        
        { data: "logo" },
        { data: "name" },   
        { data: "product" },
        {
            data: null,
            defaultContent: "",
            className: "select-checkbox",
            orderable: false, 
            targets:   0            
        }                                                              
    ]   
    ...

如何获取第一列中的复选框? (所以第0栏)

2 个答案:

答案 0 :(得分:0)

在代码

中添加此内容
 $("#table").DataTable({
            'columnDefs': [{
                    'targets': 0,
                    'bSortable': false,
                    'render': function (data, type, full, meta){
                            return '<input type="checkbox"> <label>Checkbox</label>';
                    }
            }]
 })

答案 1 :(得分:0)

这是作者的答案:

您启用了服务器端处理,默认排序是在第一列上订购。发生这种情况时,DataTables告诉服务器在客户端生成的列上进行排序并引发错误。

使用``order:[[1,&#39; desc&#39;]]`来解决这个问题。