请求的未知参数'0'来自第0行问题的数据源

Requested unknown parameter '0' from the data source for row 0 issue

本文关键字:0行 问题 数据源 未知 请求 参数      更新时间:2023-09-26

对于以下代码,我每次都会收到以上警告。

javascript

$(document).ready(function () {               
        var $lmTable = $("#information").dataTable({
            "sPaginationType": "full_numbers",
            "sScrollX": "1000px",
            "sScrollY": calcDataTableHeight(),
            "sSearch": "Search all:",
            "aaData": [],
            "aoColumns": [
                { "mDataProp": "senderCompID", sDefaultContent: "n/a"},
                { "mDataProp": "targetCompID", sDefaultContent: "n/a"},
                { "mDataProp": "tradSesReqID", sDefaultContent: "n/a"},
                { "mDataProp": "sendingTime", sDefaultContent: "n/a"},
                { "mDataProp": "tradingSessionID", sDefaultContent: "n/a"},
                { "mDataProp": "messageType", sDefaultContent: "n/a"}
            ]
        });

html

   <table id="information" class="display">
            <thead>
            <tr>
                <th>SENDER COMP ID</th>
                <th>TARGET COMP ID</th>
                <th>TRADE SESSION REQ ID</th>
                <th>SENDING TIME</th>
                <th>TRADING SESSION ID</th>
                <th>MESSAGE TYPE</th>
            </tr>
            </thead>
            <tbody id="infoBody">
            </tbody>
   </table>

JSON响应

[
 {
    "senderCompID":"1159",
    "targetCompID":"CASE",
    "tradSesReqID":"1308042969531",
    "sendingTime":"Jun 14, 2011 9:00:56 AM",
    "tradingSessionID":"SME",
    "messageType":"g"
  }
]

加载页面时出现以下错误,而表行未加载。

DataTables warning (table id = 'information'): Requested unknown
parameter '0' from the data source for row 0

这里的问题是什么?解决方案是什么?

诊断

看看你对数据表的初始化。。您在初始化时将aaData(即数据源(设置为空数组。换句话说,一旦数据表生成了表,它就会尝试从空数组中读取第一列,并返回警告

解决方案

在初始化表之前获取JSON响应。

...    
//Get your json from the server
var aaData = [
{
    "senderCompID":"1159",
    "targetCompID":"CASE",
    "tradSesReqID":"1308042969531",
    "sendingTime":"Jun 14, 2011 9:00:56 AM",
    "tradingSessionID":"SME",
    "messageType":"g"
  }
]
//Then initialise the table

或者。。。假设您使用的是Ajax

var aaData = null;
$.ajax("*put your url here*")
.done(function(response){
    aaData = response;
    // Then initialise table 
});

以下是使用Ajax获取数据的完整代码;

$(document).ready(function () {    
    $.ajax("*put your url here*")
    .done(function(response){
        //Set the variable aaData to the response
        var aaData = response;
        // Then initialise table using aaData as the datasource
        var $lmTable = $("#information").dataTable({
            "sPaginationType": "full_numbers",
            "sScrollX": "1000px",
            "sScrollY": calcDataTableHeight(),
            "sSearch": "Search all:",
            "aaData": aaData,    // <-- Here
            "aoColumns": [
                { "mDataProp": "senderCompID", sDefaultContent: "n/a"},
                { "mDataProp": "targetCompID", sDefaultContent: "n/a"},
                { "mDataProp": "tradSesReqID", sDefaultContent: "n/a"},
                { "mDataProp": "sendingTime", sDefaultContent: "n/a"},
                { "mDataProp": "tradingSessionID", sDefaultContent: "n/a"},
                { "mDataProp": "messageType", sDefaultContent: "n/a"}
            ]
        });
    });