【问题标题】:DataTable - Getting error when putting select checkbox in first columnDataTable - 将选择复选框放在第一列时出错
【发布时间】:2018-04-12 02:53:38
【问题描述】:

我知道它已经得到解决,但我只是没有让它发挥作用。我正在使用带有响应和服务器端的数据表编辑器。当我将复选框放在第一列时出现错误:

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 警告:表 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 列)

【问题讨论】:

    标签: javascript datatables


    【解决方案1】:

    在代码中添加这个

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

    【讨论】:

    • 你能添加这个问题的小提琴或工作模型吗?
    • 你能在 defaultContent 中传递复选框 html 吗?在你发布你的小提琴之前,我只能盲目地说这个,谢谢
    【解决方案2】:

    这里是作者的回答:

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

    使用 ``order: [[1, 'desc']]` 来解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 2013-10-29
      • 1970-01-01
      • 2018-04-01
      相关资源
      最近更新 更多