2016-07-27 48 views
1

我使用jQuery数据表的版本1.10.12从https://datatables.net/数据表含有括号

列数据属性按照一个示例:

色谱柱:

columns: [ 
    {title: "Id", data: "id"}, 
    {title: "Name", data: "Person[name]"}, 
    {title: "Gender", data: "Person[gender]"}, 
] 

数据

[{ 
    "id":"1", 
    "Person[name]":"Foo Bar", 
    "Person[gender]":"M" 
}] 

这个网格的结果将只呈现id字段,我如何使用括号作为关键值?

+0

你能解释更多的,正是你需要的? –

+0

DataTables不呈现 - '名字'列中的'Foo Bar'和'性别'列中的'M'。但是我看到DataTables支持使用点''嵌套的字段,但是机器人就是这种情况,而我在解决这个简单的问题时遇到了很多麻烦! –

回答

1

当为columns.data选项指定字符串时,会对字符[]进行特殊处理。

您可以尝试使用功能,而不是columns.data选项。

例如:

columns: [ 
    { title: "Id", data: "id"}, 
    { 
     title: "Name", 
     data: function(row, type, val, meta){ 
      if (type === 'set') { 
       row['Person[name]'] = val; 
       return; 
      } else { 
       return row['Person[name]']; 
      } 
     } 
    }, 
    { 
     title: "Gender", 
     data: function(row, type, val, meta){ 
      if (type === 'set') { 
       row['Person[gender]'] = val; 
       return; 
      } else { 
       return row['Person[gender]']; 
      } 
     } 
    } 
] 
+0

工作就像一个魅力!对于通用的使用,我已经实现了如下: 'var keys = []; (var i in cols){ if(cols [i] .data!=='id'){ keys [i] = cols [i] .data; cols [i] .data = function(row,type,val,meta)if(type ==='set'){ row [keys [meta.col]] = val; } else { return row [keys [meta.col]]; } } } }' –