【问题标题】:dataTable column renderingdataTable 列渲染
【发布时间】: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


【解决方案1】:

您在@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>

如果不是,那可能是代码的问题!

【讨论】:

  • 先生,正如您所说..您的代码只是输出...但问题不在于渲染。它的过滤
  • 在 firefox 中检查 firebug,看看是否有任何错误。很多时候,json 格式的问题会导致数据表的行为异常,所以也要检查一下。
猜你喜欢
  • 2011-06-11
  • 1970-01-01
  • 2015-02-22
  • 2023-03-21
  • 2014-10-11
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多