Modal弹出窗口中的部分视图仅显示第一次

时间:2014-10-16 09:33:52

标签: jquery dialog popup modal-dialog partial-views

我有一种感觉,我在这里错过了一些明显的东西,但我无法想象发生了什么!

我的视图中有一个表格,显示数据列表。对于列表中的每个项目,我希望有一个可单击的链接,显示有关该项目的更多信息。所有需要的数据都已传递给视图,因此这仅用于显示。 我试图做的是将信息传递给局部视图,每次显示为模态弹出窗口。此 正在运行,但仅适用于点击的第一个项目。关闭弹出窗口并单击另一个/相同的项目后,我会得到叠加但没有弹出窗口。

这是我的观看代码:

<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很新,我无法解决它。

非常感谢任何帮助/建议。 我希望能够显示此信息,而无需再次调用我的控制器。

提前感谢您的帮助/建议。

1 个答案:

答案 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");
                }
            }
        });
}