具有嵌套数组的数据表

时间:2017-01-17 14:34:45

标签: datatables

我提出了一个关于Bootstrap Tables的问题,但同时由于感觉被阻挡,我搬到了Datatables。然而,我的问题是一样的。

这两者都不能轻易处理嵌套的JSON结果。例如,如果我选择" field:author",它会将以下内容处理为" [Object Object],[Object Object]"。

    "author": [
        {
            "family": "Obama",
            "given": "Barack"
        },
        {
            "family": "Obama",
            "given": "Michelle"
        }

我可以单独选择结果,说" field:author [,] .family",它返回一个类似于"奥巴马,奥巴马和#34;的列表。但我希望输出像#34;给+ family1,给+ family2,.."。

1 个答案:

答案 0 :(得分:1)

您可以使用自定义渲染。 DataTables允许您为每列定义自定义呈现。

这是我制定的sample。我正在为作者专栏做自定义渲染。

$(document).ready(function() {
var dataSet = [
    { "name": "How to DataTables", "author": [{ "firstname": "jack", lastname: "d" }, { "firstname": "dick", lastname: "j" }] },
    { "name": "How to Custom Render", "author": [{ "firstname": "bill", lastname: "g" }, { "firstname": "scott", lastname: "g" }] }
];

$('#example').DataTable({
    data: dataSet,
    columns: [
        { title:"Book Name",
          data: "name" },
        {
          title: "Authors",
            data: "author",
            render: function(data, type, row) {
                //return data.length;
                var txt = '';
                data.forEach(function(item) {
                    if (txt.length > 0) {
                      txt += ', '
                    }
                    txt += item.firstname + ' ' + item.lastname;
                });
                return txt;
            }
        }
    ]
});
});