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

标签 javascript jquery arrays json datatables

有没有办法动态设置数据表列的数据源?就像我通过硬编码每个属性名称来设置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"}
          ];

现在,您应该获取所有并构建最终数组:

var obj=array[0];
var keys=[];
for(var k in obj) 
    keys.push({"data":k});

现在,keys 数组如下所示:

[
   {"data":"PName"},
   {"data":"PTime"}
]

最后一步是将数组分配给 DataTablecolumns 属性:

columns:keys

现在应该是这样的:

columns:[
          { "data": "PName" },
          { "data": "PTime" }    
]

希望这有帮助!

关于javascript - 动态设置jquery数据表列的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424032/

相关文章:

java - 使用retainAll()查找 HashMap 之间的交集

javascript - 从字符串数组应用多个 CSS 规则?

javascript - 关闭 Javascript HTML5 替换 innerHTML

javascript - Firefox javascript 转义错误

javascript - 如何在 JavaScript 中的嵌入 HTML 中创建 if 语句以显示 CSS 类

javascript - 明智地使用 .delegate() 性能更好吗?

javascript - HTML Canvas 无法绘制图像

javascript - 在 AngularJS 中选择所有复选框

javascript - 我如何更改我当前的代码以将我的 div 设置为最小高度而不是高度 jQuery

arrays - 如何修改数组的最后一项?