Javascript 向DataTable添加JSON数据
希望有人能帮我找到这个,因为我想不出来 数据已成功接收,但数据不会加载到表中。没有错误消息。它就是做不到。以前,当我在DataTable中使用ajax调用时,这是有效的,但是当我将ajax调用移到DataTable创建之外时,它就不起作用了 JSON数据示例:Javascript 向DataTable添加JSON数据,javascript,datatable,Javascript,Datatable,希望有人能帮我找到这个,因为我想不出来 数据已成功接收,但数据不会加载到表中。没有错误消息。它就是做不到。以前,当我在DataTable中使用ajax调用时,这是有效的,但是当我将ajax调用移到DataTable创建之外时,它就不起作用了 JSON数据示例: { "data":[ { "Id": 1, "Name": "Fred" }, { "Id": 2,
{
"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要查找的默认属性,如果没有其他指定的话。