使用 ajax 调用结果在引导框对话框中创建 table
Create table in bootbox dialog with ajax call result
我目前正在开发一个应用程序,它应该报告特殊场合的出勤情况。我通过 AJAX 调用获得了 JSON 个对象的列表。
然后我会在引导框对话框中创建一个 table,这将为我的 AJAX 调用结果中的每个项目创建新行。每行将包含名称和一个链接到名称 ID 的复选框。
但是当我显示启动框时,它只显示 object.object 和下面的一个空框。
我做错了什么?
这是我的代码:
$.ajax({
type: 'GET',
url: '/Lecture/GetParticipantsToAttend',
dataType: 'json',
data: { id: lectureId },
success: function (participants) {
bootbox.dialog({
backdrop: false,
title: "Attendance",
message: '<table class="table-striped form-control" id="tblParticipants"> '
+ $.each(participants, function (i, participant) {
'<tr> '
+ '<td class="col-lg-11 col-md-11 col-sm-11 col-xs-11"> '
+ '<label> ' + participant.FullName
+ '</label>' + '</td> '
+ '<td class="text-center col-lg-1 col-md-1 col-sm-1 col-xs-1">'
+
(participant.Attended == true ? '<input type="checkbox" value="' + participant.ParticipantId + '" checked="checked"/>' : '<input type="checkbox" value="' + participant.ParticipantId + '" />')
+ '</td> '
+ '</tr> '
}) + '</table> ',
buttons: {
success: {
label: "Save",
className: "btn-success",
callback: function () {
}
},
danger: {
label: "Cancel",
className: "btn-danger",
callback: function () {
}
}
}
})
}
})
我认为这里的解决方案是在调用引导框之前创建字符串。
尝试做这样的事情:
$.ajax({
type: 'GET',
url: '/Lecture/GetParticipantsToAttend',
dataType: 'json',
data: { id: lectureId },
success: function (participants) {
var table = '<table class="table-striped form-control" id="tblParticipants"> ';
$.each(participants, function (i, participant) {
var tr = '<tr> ';
tr += '<td class="col-lg-11 col-md-11 col-sm-11 col-xs-11"> ';
tr += '<label> ' + participant.FullName;
tr += '</label>' + '</td> ';
tr += '<td class="text-center col-lg-1 col-md-1 col-sm-1 col-xs-1">';
tr += (participant.Attended == true ? '<input type="checkbox" value="' + participant.ParticipantId + '" checked="checked"/>' : '<input type="checkbox" value="' + participant.ParticipantId + '" />');
tr += '</td> ';
tr += '</tr> ';
table += tr;
});
table += "</table>";
bootbox.dialog({
backdrop: false,
title: "Attendance",
message: table,
buttons: {
success: {
label: "Save",
className: "btn-success",
callback: function () {
}
},
danger: {
label: "Cancel",
className: "btn-danger",
callback: function () {
}
}
}
});
}});
我目前正在开发一个应用程序,它应该报告特殊场合的出勤情况。我通过 AJAX 调用获得了 JSON 个对象的列表。
然后我会在引导框对话框中创建一个 table,这将为我的 AJAX 调用结果中的每个项目创建新行。每行将包含名称和一个链接到名称 ID 的复选框。
但是当我显示启动框时,它只显示 object.object 和下面的一个空框。
我做错了什么?
这是我的代码:
$.ajax({
type: 'GET',
url: '/Lecture/GetParticipantsToAttend',
dataType: 'json',
data: { id: lectureId },
success: function (participants) {
bootbox.dialog({
backdrop: false,
title: "Attendance",
message: '<table class="table-striped form-control" id="tblParticipants"> '
+ $.each(participants, function (i, participant) {
'<tr> '
+ '<td class="col-lg-11 col-md-11 col-sm-11 col-xs-11"> '
+ '<label> ' + participant.FullName
+ '</label>' + '</td> '
+ '<td class="text-center col-lg-1 col-md-1 col-sm-1 col-xs-1">'
+
(participant.Attended == true ? '<input type="checkbox" value="' + participant.ParticipantId + '" checked="checked"/>' : '<input type="checkbox" value="' + participant.ParticipantId + '" />')
+ '</td> '
+ '</tr> '
}) + '</table> ',
buttons: {
success: {
label: "Save",
className: "btn-success",
callback: function () {
}
},
danger: {
label: "Cancel",
className: "btn-danger",
callback: function () {
}
}
}
})
}
})
我认为这里的解决方案是在调用引导框之前创建字符串。 尝试做这样的事情:
$.ajax({
type: 'GET',
url: '/Lecture/GetParticipantsToAttend',
dataType: 'json',
data: { id: lectureId },
success: function (participants) {
var table = '<table class="table-striped form-control" id="tblParticipants"> ';
$.each(participants, function (i, participant) {
var tr = '<tr> ';
tr += '<td class="col-lg-11 col-md-11 col-sm-11 col-xs-11"> ';
tr += '<label> ' + participant.FullName;
tr += '</label>' + '</td> ';
tr += '<td class="text-center col-lg-1 col-md-1 col-sm-1 col-xs-1">';
tr += (participant.Attended == true ? '<input type="checkbox" value="' + participant.ParticipantId + '" checked="checked"/>' : '<input type="checkbox" value="' + participant.ParticipantId + '" />');
tr += '</td> ';
tr += '</tr> ';
table += tr;
});
table += "</table>";
bootbox.dialog({
backdrop: false,
title: "Attendance",
message: table,
buttons: {
success: {
label: "Save",
className: "btn-success",
callback: function () {
}
},
danger: {
label: "Cancel",
className: "btn-danger",
callback: function () {
}
}
}
});
}});