繁体   English   中英

动态设置jquery数据表列的数据源

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM