![](/img/trans.png)
[英]How to sort date and string in same column in jquery plugin having file jquery.dataTables.js?
[英]Convert JSON string to JSON object so I don't need to change in the base jquery.dataTables.js
我在服务器端使用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)
_fnBuildAjax.baseAjax
(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"
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.