数据表 - 向行添加新列

时间:2014-07-02 20:36:39

标签: jquery datatables jquery-datatables

我有data

[
  {
    id: 1,
    name: 'first',
    desc: 'mini desc'
  }, 
  {
    id: 2,
    name: 'second',
    desc: 'mini desc'
  }
]

如果我用这个数据创建数据表,我得到这个

+----+--------+-------------+
+ ID + Name   + Description +
+----+--------+-------------+
+ 1  + first  + mini desc   +
+----+--------+-------------+
+ 2  + second + mini desc   +
+----+------+---------------+

但我想要这样的结果

+---+----+--------+-------------+
+ * + ID + Name   + Description +
+---+----+--------+-------------+
+ * + 1  + first  + mini desc   +
+---+----+--------+-------------+
+ * + 2  + second + mini desc   +
+---+----+--------+-------------+

* - checkbox input

我知道,我可以用替换列的数据来做,但我想保存所有列

createdRow: function (row, data, index) {
    $('td', row).eq(0).html('<input type="checkbox">')
}

如何在没有替换数据列的情况下执行此操作?感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用mRender定义中的aoColums功能来实现此目的:

var oTable = $('#myDataTable').dataTable({
    "data": dataset,
    "bProcessing": true,
    "aoColumns": [{
        "mData": 'id',
        "sWidth": "15px",
        "mRender": function(cell_data, type, full) {
            if (type === 'display') {
                return '<input id="check_' + cell_data + '" type="checkbox">';
            }
            return cell_data;
        }
    }, {
        "mData": 'id',
    }, {
        "mData": 'name'
    }, {
        "mData": 'desc'
    }]
})

这样,数据(在这种情况下为id)将保持不变并可以进行排序,但会显示为ID="check_###"的复选框。

请注意,这对dataTables 1.10有效,旧版本需要稍微不同的语法。此外,我没有找到此Plunker所需的所有CSS文件。