我有一种感觉,我在这里错过了一些明显的东西,但我无法想象发生了什么!
我的视图中有一个表格,显示数据列表。对于列表中的每个项目,我希望有一个可单击的链接,显示有关该项目的更多信息。所有需要的数据都已传递给视图,因此这仅用于显示。 我试图做的是将信息传递给局部视图,每次显示为模态弹出窗口。此 正在运行,但仅适用于点击的第一个项目。关闭弹出窗口并单击另一个/相同的项目后,我会得到叠加但没有弹出窗口。
这是我的观看代码:
<td>
<a href="#" class="viewDetails" id="@hatchSlot.AppointmentID">View</a>
<div class="ui-dialog" id=@(hatchSlot.AppointmentID + "View")>
@Html.Partial("_ViewAppointmentDetails", hatchSlot)
</div>
</td>
和jquery:
$('.viewDetails').click(function (event) {
event.preventDefault();
var appointmentID = this.id + "View";
popup = $('#' + appointmentID);
SetupModalDialog();
popup.dialog('open');
});
function SetupModalDialog() {
$('.ui-dialog').dialog
({
autoOpen: false,
width: 400,
resizable: false,
title: 'Appointment Details',
modal: true,
buttons: {
"Close": function() {
$(this).dialog("close");
}
}
});
}
我不确定背后发生了什么。我的猜测是第一次点击是覆盖已经存在的东西,但由于我对MVC很新,我无法解决它。
非常感谢任何帮助/建议。 我希望能够显示此信息,而无需再次调用我的控制器。
提前感谢您的帮助/建议。
答案 0 :(得分:0)
正如我所料,我错过了一些非常明显的东西 - 我需要通过“弹出窗口”#39;到SetupModalDialog函数....在功能方面虽然很小但不是很小!
也许它可以帮助别人...
$('.viewDetails').click(function (event) {
event.preventDefault();
popup = $('#' + this.id + "View");
SetupModalDialog(popup);
$(popup).dialog('open');
});
$('.ui-widget-overlay').live('click', function() {
$('.ui-dialog').dialog("close");
});
function SetupModalDialog(popup) {
popup.dialog
({
autoOpen: false,
width: 400,
resizable: false,
title: 'Appointment Details',
modal: true,
buttons: {
"Close": function () {
$(this).dialog("close");
}
}
});
}