有什么方法可以初始化 jquery 数据表中的详细信息吗?
is there any way to initialize details in jquery datatable?
我在 jquery 数据 table 详细信息初始化方面遇到问题。
我需要在页面加载后获取 table 打开的详细信息。
我有以下代码:
function format(d) {
return d;
}
$(document).ready(function () {
$.ajax({
type: "GET",
dataType: "json",
url: "/SHOP/Promotions/GenerateDetailsToJson", //teraz w tym miejscu inicjuję dane do tabel
success: function (result) {
SetDetails(result);
},
error: function () {
alert("Wystąpił nieoczekiwany błąd");
}
})
dt = $('#table').DataTable(
{
"aoColumnDefs": [
{ 'bSortable': false, 'aTargets': [0, 6, 7] }
]
}
);
dt.on('draw', function () {
$.each(detailRows, function (i, id) {
$('#' + id + ' td:first-child').trigger('click');
});
});
$('#table').DataTable();}
var table_length = $('#table tbody tr').length; //HERE iS PROBLEM
var tr = document.getElementsByClassName("details");
for (var i = 0; i < table_length; i++) {
var row = dt.row(tr[i]);
row.child(format(details[i])).show();
}
);
问题出在上面代码的最后几行。
这些行需要初始化并打开所有 jquery 数据 table 的详细信息,但这些函数不会及时执行,也不会显示任何内容。
我试过使用超时,它工作得更好,但不像想要的那样,并且有几次刷新没有数据
如果您知道任何解决方案,请提供帮助。
您必须等待 ajax 请求完成。
例如:
$(document).ready(function () {
$.ajax({
//...
success: function (result) {
SetDetails(result);
process();
}
});
function process() {
var table_length = $('#table tbody tr').length;
var tr = document.getElementsByClassName("details");
for (var i = 0; i < table_length; i++) {
var row = dt.row(tr[i]);
row.child(format(details[i])).show();
}
}
});
1:尝试删除数据表代码之前的 ajax 调用(可能 ajax 调用中存在一些错误导致下面的代码无法运行)
2:在 ajax 调用中,我认为 url 是错误的。
3: 是否存在setdetails函数,如果不存在,则代码会报错
4:在 firefox 浏览器中尝试 运行 您的代码(启用 firebug),如果您不知道 firebug,请尝试谷歌搜索,但建议使用 firebug(很有帮助)
尝试使用 $.when
和 .then
以便您可以等待 ajax 完成,然后执行剩余的初始化,如下所示:
$.when(
$.ajax({
....
....
})).then(function()
{
dt = $('#table').DataTable(
....
....
});
//Other initializations.
});
我在 jquery 数据 table 详细信息初始化方面遇到问题。 我需要在页面加载后获取 table 打开的详细信息。
我有以下代码:
function format(d) {
return d;
}
$(document).ready(function () {
$.ajax({
type: "GET",
dataType: "json",
url: "/SHOP/Promotions/GenerateDetailsToJson", //teraz w tym miejscu inicjuję dane do tabel
success: function (result) {
SetDetails(result);
},
error: function () {
alert("Wystąpił nieoczekiwany błąd");
}
})
dt = $('#table').DataTable(
{
"aoColumnDefs": [
{ 'bSortable': false, 'aTargets': [0, 6, 7] }
]
}
);
dt.on('draw', function () {
$.each(detailRows, function (i, id) {
$('#' + id + ' td:first-child').trigger('click');
});
});
$('#table').DataTable();}
var table_length = $('#table tbody tr').length; //HERE iS PROBLEM
var tr = document.getElementsByClassName("details");
for (var i = 0; i < table_length; i++) {
var row = dt.row(tr[i]);
row.child(format(details[i])).show();
}
);
问题出在上面代码的最后几行。 这些行需要初始化并打开所有 jquery 数据 table 的详细信息,但这些函数不会及时执行,也不会显示任何内容。 我试过使用超时,它工作得更好,但不像想要的那样,并且有几次刷新没有数据 如果您知道任何解决方案,请提供帮助。
您必须等待 ajax 请求完成。
例如:
$(document).ready(function () {
$.ajax({
//...
success: function (result) {
SetDetails(result);
process();
}
});
function process() {
var table_length = $('#table tbody tr').length;
var tr = document.getElementsByClassName("details");
for (var i = 0; i < table_length; i++) {
var row = dt.row(tr[i]);
row.child(format(details[i])).show();
}
}
});
1:尝试删除数据表代码之前的 ajax 调用(可能 ajax 调用中存在一些错误导致下面的代码无法运行)
2:在 ajax 调用中,我认为 url 是错误的。
3: 是否存在setdetails函数,如果不存在,则代码会报错
4:在 firefox 浏览器中尝试 运行 您的代码(启用 firebug),如果您不知道 firebug,请尝试谷歌搜索,但建议使用 firebug(很有帮助)
尝试使用 $.when
和 .then
以便您可以等待 ajax 完成,然后执行剩余的初始化,如下所示:
$.when(
$.ajax({
....
....
})).then(function()
{
dt = $('#table').DataTable(
....
....
});
//Other initializations.
});