[英]Dynamically set datasource for jquery datatable columns
有没有一种方法可以动态设置datatable列的数据源? 就像我通过像这样对每个属性名称进行硬编码来设置columns.data
:
$.ajax({
data: JSON.stringify(data),
url: urlGetProviderQualificationTimeData,
type: 'POST',
contentType: "application/json; charset=utf-8",
success: function (obj) {
if (obj.success) {
$('#tblProds').dataTable({
data: obj.data.ProdsDetails,
columns: [
{ "data": "PName" },
{ "data": "PTime" } //hardcoded mapping of properties
]
});
}
},
});
ProdsDetails
示例数组:
Array[2]
0:Object
PName:"ATT",
PTime:"6.48"
1:Object
PName:"CENTURYLINK",
PTime:"3.67"
有没有办法摆脱这种对属性和列的硬编码映射?
这是您的数组:
var array=[
{PName:"ATT",PTime:"6.48" },
{PName:"CENTURYLINK",PTime:"3.67"}
];
现在,您应该获得所有keys
并构建最终数组:
var obj=array[0];
var keys=[];
for(var k in obj)
keys.push({"data":k});
现在, keys
数组如下所示:
[
{"data":"PName"},
{"data":"PTime"}
]
最后一步是将数组分配给DataTable
columns
属性:
columns:keys
现在看起来应该像这样:
columns:[
{ "data": "PName" },
{ "data": "PTime" }
]
希望这可以帮助 !。
我有同样的问题,并通过为columns.data
属性创建一个额外的json
数组来解决此问题。 用于通过php
函数遍历标头并将其放入json
数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.