2

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

<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
       }
    ]
    });
4

2 回答 2

0

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

所以你应该返回类似

{ iTotalRecords : 2, iTotalDisplayRecords: 2, aaData: [{
    "time1": 12345,
    "time2": 56789
},  
{
        "time1": 2000,
        "time2": 3000
}] 
}
于 2012-09-30T23:29:36.643 回答
0

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

于 2012-10-01T23:58:25.397 回答