jQuery DataTables加载客户端对象数组

时间:2011-07-05 21:58:44

标签: javascript jquery datatables

我在jQuery中使用.data()函数将从服务器返回的一组记录附加到我页面上的DOM元素。记录存储为对象数组。代码如下:

    //Attached returned data to an HTML table element
    $('#measTable').data('resultSet', resultSet);

    //Get stored data from HTML table element
var results = $('#measTable').data('resultSet');

//Construct the measurement table
data_table = $('#measTable').dataTable({
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "bProcessing": true,
    "bDeferRender": true,
    "aaData": [ results ],
    "aoColumns": [
                { "mDataProp": "Field1" },
                { "mDataProp": "Field2" },
                { "mDataProp": "Field3" },
                { "mDataProp": "Field4" }
            ]
});

然后我从元素中获取数据并继续将其加载到数据表中。但这似乎不起作用,并始终返回错误请求未知参数“Field1”来自第0行的数据源。是否可以以这种方式将数据加载到数据表中?

更新:

以下是结果对象数组的示例

results = 
    0: Object
       Field1: "2011/04/23"
       Field2: 8
       Field3: "Hello"
       Field4: "World"
       __proto__: Object
    1: Object
       Field1: "2011/03/25"
       Field2: 6
       Field3: "Hello"
       Field4: "Everyone"
       __proto__: Object
...etc.

3 个答案:

答案 0 :(得分:5)

DataTables的开发人员Allan能够在DataTables forum的以下帖子中回答我的问题。如果链接不起作用,则问题结果是一个简单的语法错误。

而不是"aaData": [ results ],,而不是"aaData": results,

感谢你的帮助艾伦。

答案 1 :(得分:1)

嗯,aaData(顾名思义使用hungarian notation)需要一个数组数组,所以如果你拿一个对象数组就是它抱怨的原因。

答案 2 :(得分:0)

将以下内容添加到您的定义中:

$('#measTable').dataTable({
    ...
    "columns": [
        { "data": "field1" },
        { "data": "field2" },
        { "data": "field3" }
    ]
});

您应该将表格列与数组匹配。

那就是它!