IAm*_*aja 5 javascript jquery json datatables
我正在尝试填充dataTable,如下所示:
$("#my-datatable").dataTable( {
"sAjaxSource" : "/someURLOnMyServer",
"bDestroy" : true,
"fnServerParams" : function(serverParams) {
serverParams.push(
{
"name" : "widget",
"value" : token
}
);
}
});
Run Code Online (Sandbox Code Playgroud)
它填充的HTML表格:
<table id="my-datatable">
<thead>
<tr>
<th>Type</th>
<th>Value</th>
<th>ID</th>
<th>Fizz</th>
<th>Buzz</th>
</tr>
</thead>
<tbody></tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
根据Firebug,从服务器返回的JSON是:
[
{
"id":1,
"attributeType":{
"id":1,
"name":"test1",
"tag":"test-type",
"is-dog":false
},
"attributeValue":{
"id":null,
"name":"blah",
"tag":"BLAH"
},
"buzz":1,
"fizz":"53abc"
}
]
Run Code Online (Sandbox Code Playgroud)
但Firebug在其控制台中抛出以下JavaScript错误:
TypeError: aData is undefined
[Break On This Error]
for ( i=0 ; i<aData.length ; i++ ) --> jquery.dataTables.js (line 2541)
Run Code Online (Sandbox Code Playgroud)
谁能发现出了什么问题?要么我没有dataTable正确设置我的对象,要么回来的JSON与它试图填充的HTML表的"模式"不匹配.无论哪种方式,我都输了.提前致谢!
数据表需要特定的结果格式.如果您不使用该格式,则必须声明所有内容.
$('#my-datatable').dataTable( {
"sAjaxSource": "/url/here",
"fnServerData": function ( sSource, aoData, fnCallback ) {
aoData.push( { "name": "widget", "value": "token" } );
request = $.ajax({
"dataType": 'json',
"type": "GET",
"url": sSource,
"data": aoData,
"success": fnCallback
});
},
"aoColumns": [
{ "mDataProp": "id"},
{ "mDataProp": "fizz"},
{ "mDataProp": "name"},
{ "mDataProp": "tag"},
{ "mDataProp": "tag"},
{ "mDataProp": "attributeValue.name"},
{ "mDataProp": "attributeValue.tag"},
],
});
Run Code Online (Sandbox Code Playgroud)
这是格式:http://datatables.net/release-datatables/examples/server_side/post.html
| 归档时间: |
|
| 查看次数: |
17625 次 |
| 最近记录: |