我在服务器端使用ASP.net MVC。基本上,我有一个模型类,通常我JsonConvert.SerializeObject(DataTableModel)
将其发送回datatables.js
。转换后,json数据如下所示;
"{
"draw":1,
"recordsTotal":2,
"recordsFiltered":2,
"data":[
{"PONumber":"PO 1234","SupplierNumber":"SUP 123","SupplierName":"Supplier 1","ProductDescription":"SUND Salt & Pep Grinder 6/210g","POQuantity":"6","POUOM":"12","BatchQuantity":"18","BatchUOM":"24","ShelfDate":"2016/02/24","ExpireDate":"2016/03/15","CreatedDate":"2016/02/23","CreatedBy":"HORIZON.COM\\mohammadi","POReceiveDate":"2016/02/20","Notes":"Note 1"},
{"PONumber":"PO 1236","SupplierNumber":"SUP 124","SupplierName":"Supplier 2","ProductDescription":"365 Cinnamon Strick Whol 6/36g*","POQuantity":"6","POUOM":"12","BatchQuantity":"18","BatchUOM":"24","ShelfDate":"2016/02/25","ExpireDate":"2016/03/31","CreatedDate":"2016/02/23","CreatedBy":"HORIZON.COM\\mohammadi","POReceiveDate":"2016/02/25","Notes":"Note 2"}
]
}"
它可以使数据正常。但是,如果我不把它转换为jquery.dataTables.js >> _fnBuildAjax.baseAjax
>>success
进入以下(between line 9 - 15)
它不显示数据; 出现错误,找不到长度为的错误undefined
。
var baseAjax = {
"data": data,
"success": function (json) {
var error = json.error || json.sError;
if ( error ) {
_fnLog( oSettings, 0, error );
}
var x = JSON.parse(json);
oSettings.json = x;
callback(x);
//oSettings.json = json;
//callback( json );
},
"dataType": "json",
"cache": false,
"type": oSettings.sServerMethod,
"error": function (xhr, error, thrown) {
var ret = _fnCallbackFire( oSettings, null, 'xhr', [oSettings, null, oSettings.jqXHR] );
if ( $.inArray( true, ret ) === -1 ) {
if ( error == "parsererror" ) {
_fnLog( oSettings, 0, 'Invalid JSON response', 1 );
}
else if ( xhr.readyState === 4 ) {
_fnLog( oSettings, 0, 'Ajax error', 7 );
}
}
_fnProcessingDisplay( oSettings, false );
}
};
以下是我的js代码与数据表的绑定。
var table = $('#example').DataTable({
"processing": true,
"serverSide": false,
"ajax": {
"url": "/Home/GetDateLogData",
"type": "POST"
},
"columns": [
{ "data": "PONumber" },
{ "data": "SupplierNumber" },
{ "data": "SupplierName" },
{ "data": "ProductDescription" },
{ "data": "POQuantity" },
{ "data": "POUOM" },
{ "data": "BatchQuantity" },
{ "data": "BatchUOM" },
{ "data": "ShelfDate" },
{ "data": "ExpireDate" },
{ "data": "CreatedDate" },
{ "data": "CreatedBy" },
{ "data": "POReceiveDate" },
{ "data": "Notes" }
]
});
在ajax
我尝试过的部分中dataSrc
,也没有用。
"dataSrc": function ( json ) {
var x = JSON.parse(json);
return x;
},
我的问题是,有没有内置的扩展器可以做到这一点,或者我该如何制作类似这样的原型?我提前谢谢你。
这正是的目的dataSrc
。它不起作用,因为您需要返回一个项目数组,即data
:
dataSrc: function ( json ) {
json = JSON.parse(json);
return json.data;
},
PS:为什么"type": "POST"
?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句