DataTables warning(table id ='example'):从第0行的数据源请求未知参数'0'

时间:2014-02-04 12:04:26

标签: javascript datatable

我是javascript和jquery的新手,并使用数据表来显示服务器数据。我使用下面的代码。

    $(document).ready(function () {
     $("#example").dataTable({
         "bProcessing": true,
         "sAjaxSource": "/admin/vskuStatusUid?uploadId=" + $('#UID').val(),
         "aoColumns": [{
             "mData": "uid"
         }, {
             "mData": "vcode"
         }, {
             "mData": "vsku"
         }, {
             "mData": "timeStamp"
         }, {
             "mData": "state"
         }, {
             "mData": "counter"
         }]
     });
 });

and my ajax response looks like below 

{
    "aaData": [
        {
            "uid": "UID0000007017",
            "vcode": "927ead",
            "vsku": "Prateek1000",
            "timeStamp": 1391158258658,
            "state": "VENDOR_PRODUCT_PERSISTENCE_COMPLETED",
            "counter": 2
        },
        {
            "uid": "UID0000007017",
            "vcode": "927ead",
            "vsku": "Prateek5000",
            "timeStamp": 1391158258881,
            "state": "VENDOR_PRODUCT_PERSISTENCE_COMPLETED",
            "counter": 3
        }
    ]
}

我的hmtl代码在

之下
<table id="example">
        <thead>
            <tr>
            <th>Upload Id</th>
            <th >Vcode</th>
            <th>Vsku</th>
            <th>Timestamp</th>
            <th>State</th>
            <th>counter</th>
            </tr>
          </thead>
          <tbody>
        </tbody>
        </table>

有人可以帮助我。

我已经检查了与此问题相关的其他答案,并且大部分都表明问题可能与thead total column和mdata有所不同。

1 个答案:

答案 0 :(得分:2)

你不需要在html中编写列,dataTable会为你做。您需要的唯一HTML是<table id="example"></table>

我认为错误是您部分插入数据或尝试从表中未显示的行获取数据。

这是一个可能的解决方法:

获取所获得的数据并将其解析为对象后。你可以这样做:

var table = $("#example").dataTable({
         "bProcessing": true,
         "sAjaxSource": "/admin/vskuStatusUid?uploadId=" + $('#UID').val(),
         "aoColumns": [{
             "mData": "uid"
         }, {
             "mData": "vcode"
         }, {
             "mData": "vsku"
         }, {
             "mData": "timeStamp"
         }, {
             "mData": "state"
         }, {
             "mData": "counter"
         }]
     });

for (var i=0; i< ParsedObject.length; i++) {
    var temp_item = ParsedObject[i]; //new row data
    table.fnAddData(temp_item.uid, temp_item.vcode, temp_item.vsku, temp_item.timeStamp, temp_item.state, temp_item.counter); //adds new row to datatable
}