jQuery Datatable Uncaught TypeError:无法读取未定义的属性“length”

时间:2017-08-10 18:33:48

标签: javascript jquery json datatables

我认为这是一个很受欢迎的问题。我发布了我的问题,因为我试图与其他人一起调查我的问题,但无济于事。

------------------我正在使用遗留的jquery数据表------------------ ---

我看到了不一致的行为。我有两个相同的数据表,除了每个数据表与不同的控制器通信。一个填充完美,另一个在jQuery代码中给我这个错误。

enter image description here

我正在获取json数据,但_fnGetObjectDataFn(oSettings.sAjaxDataProp)(json)正在将aData设置为undefined! 说什么?这是json数据:

enter image description here

为了确保问题不在于列数不正确,我将表格最小化为一列。这是弹出表视图的javaScript:

initBuildingsTable = function () {

    $('#selectableAssetTable').dataTable({
        "bPaginate": false,
        "bProcessing": true,
        "bAutoWidth": true,
        "aoColumns": [
            { "mDataProp": "SiteName", "bSortable": true },
        ],
        "aoColumnDefs": [
        { "mDataProp": null, "sDefaultContent": " ", "aTargets": [-1] }
        ],
        "sDom": '<"top">rt<"bottom"><"clear">',
        "oLanguage": {
            "sEmptyTable": "No data found."
        },
        "sAjaxSource": $.baseURL("api/selfservice/getsites"),
        "fnServerData": function (sSource, aoData, fnCallback) {
            $.ajax({
                url: sSource, // Do not add the base to this.  It should already be present
                type: "GET",
                dataType: "json",
                success: fnCallback,
                complete: function () {
                    alert("show me the data!")
                }
            });
        }
    });
}

以下是表格的HTML:

<table id="selectableAssetTable" style="width: 100%; ">
    <thead>
        <tr>
             <th>Site Name</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

以下是从控制器返回的数据的DTO:

public class SiteDTO
{
    public decimal SiteId { get; set; }
    public string SiteName { get; set; }
    public string Address { get; set; }
    public string Contact { get; set; }
}

1 个答案:

答案 0 :(得分:1)

你可以在观察窗口看到oSettings.sAjaxDataProp = "aaData",所以你应该找一个名为&#34; aaData&#34;的对象。迭代。但是你正在使用&#34; aData&#34;默认情况下未定义。