我是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
}
]
});
答案 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一样。