Javascript 向DataTable添加JSON数据

Javascript 向DataTable添加JSON数据,javascript,datatable,Javascript,Datatable,希望有人能帮我找到这个,因为我想不出来 数据已成功接收,但数据不会加载到表中。没有错误消息。它就是做不到。以前,当我在DataTable中使用ajax调用时,这是有效的,但是当我将ajax调用移到DataTable创建之外时,它就不起作用了 JSON数据示例: { "data":[ { "Id": 1, "Name": "Fred" }, { "Id": 2,

希望有人能帮我找到这个,因为我想不出来

数据已成功接收,但数据不会加载到表中。没有错误消息。它就是做不到。以前,当我在DataTable中使用ajax调用时,这是有效的,但是当我将ajax调用移到DataTable创建之外时,它就不起作用了

JSON数据示例:

{
    "data":[
        {
            "Id": 1,
            "Name": "Fred"
        },
        {
            "Id": 2,
            "Name": "Tommy"
        }
    ]
}
获取JSON的函数调用:

function getJSON() {
    $.ajax({
        url: "Home/GetList",
        type: "GET",
        datatype: "json"
    }).done(function(data) {
        drawDataTable('Table', data);
    });
}
绘制数据表

function drawDataTable(divId, data) {
    var table = $('#' + divId).DataTable({
        data: data,
        dataSrc: "",
        columnDefs: [
            { "targets": [0], "data": "Id" },
            { "targets": [1], "data": "Name" }
        ]
    });
    return table;
}
然后,我通过
函数drawDataTable(divId,data)

在DataTable函数中,我使用:

data: data,
dataSrc: ""

我还尝试删除了
dataSrc
,并将其设置为
dataSrc:“data”
,但两者都不起作用。

请确保您正在该函数中编写代码

$(document).ready(function() { 
// your code
}
因为在此之外编写的任何内容都可能无法正常工作,特别是在使用数据表时。

此外,您还可以用以下方式编写此代码(如果有帮助的话)


确保您正在该函数中编写代码

$(document).ready(function() { 
// your code
}
因为在此之外编写的任何内容都可能无法正常工作,特别是在使用数据表时。

此外,您还可以用以下方式编写此代码(如果有帮助的话)


我想您错过了JSON的结构,请尝试data.data

 function drawDataTable(divId, data) {
        var table = $('#' + divId).DataTable({
            data: data.data, //updated here
            dataSrc: "",
            columnDefs: [
                { "targets": [0], "data": "Id" },
                { "targets": [1], "data": "Name" }
            ]
        });
        return table;
    }

我想您错过了JSON的结构,请尝试data.data

 function drawDataTable(divId, data) {
        var table = $('#' + divId).DataTable({
            data: data.data, //updated here
            dataSrc: "",
            columnDefs: [
                { "targets": [0], "data": "Id" },
                { "targets": [1], "data": "Name" }
            ]
        });
        return table;
    }


您使用的数据表是什么?你能分享一个工作示例来说明这个问题吗?这里只有很少的代码可以明确地指出一个问题,尽管我猜你是在从数据库请求信息,然后绘制表(在数据从数据库返回之前,所以表中没有显示),然后数据返回。确保在数据可用之前不绘制表格。@TJBlackman我也是这么想的。在检索数据之前正在绘制表。不过,看看我在帖子中添加的功能。我只在Ajax调用完成时调用此drawDataTable?@TJBlackman在创建数据表之前,我还验证了我是否拥有数据,并正在执行
控制台。在
drawDataTable
函数中的数据参数上记录。因此,数据就在那里供表使用。您说您已经尝试了
dataSrc:“data”
,但这是字符串“data”。尝试使用实际的
数据
变量:
dataSrc:data
您使用的是什么数据表?你能分享一个工作示例来说明这个问题吗?这里只有很少的代码可以明确地指出一个问题,尽管我猜你是在从数据库请求信息,然后绘制表(在数据从数据库返回之前,所以表中没有显示),然后数据返回。确保在数据可用之前不绘制表格。@TJBlackman我也是这么想的。在检索数据之前正在绘制表。不过,看看我在帖子中添加的功能。我只在Ajax调用完成时调用此drawDataTable?@TJBlackman在创建数据表之前,我还验证了我是否拥有数据,并正在执行
控制台。在
drawDataTable
函数中的数据参数上记录。因此,数据就在那里供表使用。您说您已经尝试了
dataSrc:“data”
,但这是字符串“data”。请尝试改用实际的
data
变量:
dataSrc:data
我为这个错误道歉。我修改了一些代码,使其不复制我实际使用的代码。我更改了可以互换的字符串值。不过接得不错。我为那个打字错误道歉。我修改了一些代码,使其不复制我实际使用的代码。我更改了可以互换的字符串值。很好,谢谢你的回复!你怎么知道的?DataTables网站上有与我的JSON示例完全相同的示例,但他们甚至没有使用
data:data.data
我还能够删除
dataSrc:“
,并使其仍然有效。我想这是没有必要的,除非您的JSON数据有一个不同的父节点,而不是
数据
是,
数据
是默认的道具,如果没有其他指定的话。谢谢您的回复!你怎么知道的?DataTables网站上有与我的JSON示例完全相同的示例,但他们甚至没有使用
data:data.data
我还能够删除
dataSrc:“
,并使其仍然有效。我认为这是不必要的,除非您的JSON数据有一个不同的父节点,而不是
data
Yes,
data
是DT要查找的默认属性,如果没有其他指定的话。