[英]JQuery Datatables Ajax dynamic columns
我正在嘗試在其中使用 ajax 繪制數據表。 如果我手動創建 object 列數組它可以工作,但是當從 initComplete 創建列時,出現錯誤“無法讀取屬性 aDataSort”,我認為 initComplete 在繪制表后工作,因為在cols數組中具有結束數據表初始化后的值。 如何在 ajax 響應后創建列 object 數組?
var columnArrayManual = [{"data": "column1"},{"data": "column1"}];
var cols = [];
tblClients = $("#tblClients").DataTable(
{
"ajax": {
"url": "/index.php?controller=controller&act=controllerMethod&ajx=1",
"dataSrc": "data",
type: 'POST',
"data": function (d) {
var a = arguments[0];
return a;
}
},
"initComplete": function (settings, json) {
$.each(json.data[0], function (i, item) {
var col = {"data" : i};
cols.push(col);
})
},
"columns": cols
}
)
您需要在服務器端對 ajax 數據表進行排序,並了解數據表 jquery 插件接受返回數據的格式,即
[{
"columns": [{
"title": "col1_name",
"data": "col1_name"
}, {
"title": "col2_name",
"data": "col2_name"
}],
"data": [{
"col1_name": "col1 data",
"col2_name": "col2 data"
}, {
"col1_name": "col1 data",
"col2_name": "col2 data"
}]
}]
我在 ASP.NET MVC 平台中為這種方法創建了一篇帶有代碼的文章,您可以查看它以了解流程,即Jquery Ajax Datatables with Dynamic Columns
我試圖從dataSrc中的ajax響應中填充數據,而不是數據表初始化
"ajax": {
"url": "/index.php?controller=controller&act=controllerMethod&ajx=1",
"dataSrc": function ( json ) {
// I have created object array here
return json.data ;
},
"type": 'POST',
"data": function (d) {
var a = arguments[0];
return a;
}
},
它奏效了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.