数据表由null填充,而不是由JSON填充

时间:2013-09-03 18:41:08

标签: jquery json datatables

摘要

我正在尝试使用包含JSON的javascript数组填充数据表。我正在循环并使用JSON创建数组。当我将其传递回Datatable时,它会正确计算行数,但不会填充它们。

您可以在下面的屏幕截图中看到这一点。表格下面的数据是输出到屏幕上的数组。

enter image description here

代码段

$(document).ready(function() {
    $('#content').append( '<br><table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
    $('#example').dataTable({
         "aaData" : x, // ARRAY CONTAINING JSON
         "aoColumns": [         
            { "sTitle": "ID", "mData" : "ID", sDefaultContent: "n/a" },
            { "sTitle": "Status", "mData" : "status", sDefaultContent: "n/a" },
            { "sTitle": "Date", "mData" : "date", sDefaultContent: "n/a" }
            ]
    });
});

我通过http://jsonlint.com/传递了JSON,结果很好。

示例JSON

{"ID":"TEST","status":"TEST","date":"TEST"}

数组中的每个JSON字符串表示数据表中的一行。

一些测试

手动输入JSON工作得很好,就像这样......

"aaData" :
        [
        {"ID":"test","status":"test","date":"test"},
        {"ID":"test","status":"test","date":"test"},
        {"ID":"test","status":"test","date":"test"},
        {"ID":"test","status":"test","date":"test"},
        ],

enter image description here

最后的想法

所以我的数组似乎输出正确,而Datatable似乎手动接受JSON。介于两者之间,它无法正常工作。我的想法要么是JSON格式,要么是你在里面用JSON拉取数组的方式。 aaData:似乎没有正确处理它。

我很乐意回答更多问题或发布更多代码/图片。感谢

1 个答案:

答案 0 :(得分:0)

aaData是一个数组数组。所以aaData看起来应该更像:

x = [["test", "test", "test"],["id", "status", "date"],["123", "456", "789"]];

如果您想从数据创建此内容:

//jsonList = you array of json objects
x = [];
for(var i = 0; i < jsonList.length; i++){
    x.push([jsonList[i].ID, jsonList[i].status, jsonList[i].date]);
}