【问题标题】:Jquery Datatable: Unable to add new column based on result of ajax call - Getting error datatable requested unknown parameterJquery Datatable:无法根据 ajax 调用的结果添加新列 - 获取错误数据表请求未知参数
【发布时间】:2012-09-27 20:36:54
【问题描述】:

我是数据表的新手 (http://datatables.net/)。我需要根据我的 ajax 调用结果的计算添加列。我尝试了以下方法,但得到错误“数据表请求来自行的数据源的未知参数”。这是这种要求的正确方法吗?我非常感谢您在这方面的帮助。 这是表结构的外观:

<table id="result" class="show_hide">
    <thead>
        <tr>
            <th>Time1</th>
            <th>Time2</th>
            <th>Elapsed Time</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

这是我的 ajax 调用的示例输出:

[{
    "time1": 12345,
    "time2": 56789
},  
{
        "time1": 2000,
        "time2": 3000
}]

这就是我正在尝试的数据表

$('#result').dataTable({
        "sAjaxSource": "http://" + hostname + ":" + port + api,
        "sAjaxDataProp": "",
        "iDisplayLength": 25,
        "bRetrieve": true,
        "sPaginationType": "full_numbers",
        "aoColumns": [{
            "mDataProp": "time1"
        },
        {
            "mDataProp": "time2"
        },
       {
            "mRender": function(data, type, row) {

                return (row.time2 - row.time1);
            },
            "mDataProp": null
       }
    ]
    });

【问题讨论】:

    标签: jquery datatables html-table


    【解决方案1】:

    正如您在服务器的documentation 中看到的,您必须返回一个具有一些必需属性的对象。

    所以你应该返回类似的东西

    { iTotalRecords : 2, iTotalDisplayRecords: 2, aaData: [{
        "time1": 12345,
        "time2": 56789
    },  
    {
            "time1": 2000,
            "time2": 3000
    }] 
    }
    

    【讨论】:

      【解决方案2】:

      我认为我们在返回对象中不需要任何额外的属性......我发现了问题所在。我使用的是 jquery 数据表 1.9.0,但 mRender 的这个功能适用于 1.9.4。升级了 js,这段代码在 1.9.4 中就像魅力一样。

      【讨论】:

      • 我们有 1.9.4,但问题仍然存在。我们还需要做其他事情吗?
      猜你喜欢
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多