【发布时间】:2012-09-03 09:26:34
【问题描述】:
我有一个像这样来自服务器端的 JSON 数据结构:
"data":[
{ "subdata":{ "type":"RY", "config":{ "cash":200} }
{ "subdata":{ "type":"SR", "config":{ "cash":200, "chips":300} }
{ "subdata":{ "type":"SR", "config":{ "chips":300} }
{ "subdata":{ "type":"RY", "config":{ "bonus":200, "chips":400} }
{ "subdata":{ "type":"SR", "config":{ "bonus":100} }
]
它在视图中呈现为这样的表格:
<table id='table-config'>
<tr><td>RY</td> <td>cash=200,</td> <td>Mode Amount=200</td></tr>
<tr><td>SR</td> <td>cash=200,chips=300,</td> <td>Mode Amount=300</td></tr>
<tr><td>SR</td> <td>chips=200,</td> <td>Mode Amount=200</td></tr>
<tr><td>RY</td> <td>bonus=200,chips=400,</td> <td></td></tr>
<tr><td>SR</td> <td>bonus=100,</td> <td>Mode Amount=600</td></tr>
</table>
在渲染数据时,
第一列数据应该给出type=RY/SR,但是在像
DataTables 警告(表 id = 'table-configs'):从第 0 行的数据源请求未知参数 'subdata.type',
第二列数据应该给出配置对象,但第二个单元格在抛出警告后变为空
DataTables 警告(表 id = 'table-configs'):从第 0 行的数据源请求未知参数 'subdata.config',
第三列渲染数据正常。
dataTable js代码为:
function renderAmount(o, config){
var amount = '';
$.each(config, function(key, value){
amount += key + '=' + value + ',';
});
return amount;
}
function renderGameMode(o, data){
var game_mode= (data.type=='RY')? 'cash' : 'chips';
var mode_value='';
$.each(data.config, function(key,value){
if(key == game_mode){
mode_value = "Mode Amount="+data.config.key;
}
});
return mode_value;
}
$('#table-configs').dataTable({
'aaData': data.data,
'bPaginate': false,
'aoColumns':[
{ 'mDataProp': 'subdata.type' },
{ 'mDataProp': 'subdata.config', 'fnRender': renderAmount },
{ 'mDataProp': 'subdata', 'fnRender': renderGameMode }
]
});
【问题讨论】:
-
感谢 VisioN 和 LazyTarget。 :-)
-
您可以使用@符号@PRADEEP回复某人
标签: jquery html ajax json datatable