Jquery Datatable:无法根据ajax调用的结果添加新列 - 获取错误数据表请求的未知参数

时间:2012-09-27 20:36:54

标签: jquery datatables html-table

我是datatables的新手(http://datatables.net/)。我需要根据我的ajax调用结果的计算添加列。我尝试了下面的方法,但得到错误“datatable从行的数据源请求未知参数”。这是否是满足此类要求的正确方法。在这方面,我非常感谢你的帮助。 这是表结构的外观:

<table id="result" class="show_hide">
    <thead>
        <tr>
            <th>Time1</th>
            <th>Time2</th>
            <th>Elapsed Time</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

以下是我的ajax调用的示例输出:

[{
    "time1": 12345,
    "time2": 56789
},  
{
        "time1": 2000,
        "time2": 3000
}]

这就是我正在尝试使用数据表

$('#result').dataTable({
        "sAjaxSource": "http://" + hostname + ":" + port + api,
        "sAjaxDataProp": "",
        "iDisplayLength": 25,
        "bRetrieve": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [{
            "mDataProp": "time1"
        },
        {
            "mDataProp": "time2"
        },
       {
            "mRender": function(data, type, row) {

                return (row.time2 - row.time1);
            },
            "mDataProp": null
       }
    ]
    });

2 个答案:

答案 0 :(得分:0)

正如您在服务器的documentation中看到的那样,您必须返回一个具有一些必需属性的对象。

所以你应该返回像

这样的东西
{ iTotalRecords : 2, iTotalDisplayRecords: 2, aaData: [{
    "time1": 12345,
    "time2": 56789
},  
{
        "time1": 2000,
        "time2": 3000
}] 
}

答案 1 :(得分:0)

我不认为我们在返回对象中需要任何额外的属性....我想出了问题。我使用的是jquery datatable 1.9.0,但mRender的这个功能适用于1.9.4。升级了js,这段代码就像魅力1.9.4一样。