dataTable列呈现

时间:2012-09-03 09:26:35

标签: jquery html ajax json datatable

我有一个这样的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 warning(table id ='table-configs')之类的警告之后第一个单元格变为空:请求的未知参数'subdata.type'来自第0行的数据源“

第二列数据应该给出配置对象,但是第二个单元格在抛出像“DataTables警告(table id ='table-configs')之类的警告后变为空:从请求的未知参数'subdata.config'第0行的数据源“

第三列渲染数据正在运行。

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 }]
});

1 个答案:

答案 0 :(得分:0)

你在@Pradeep发布的代码有问题。不应该像

那样
<tr><td>cash=200,</td></tr>
<tr><td>cash=200,chips=300,</td></tr>
<tr><td>chips=200,</td></tr>
<tr><td>bonus=200,chips=400,</td></tr>
<tr><td>bonus=100,</td></tr>

如果不是,则可能是代码存在问题!

相关问题