2

我目前使用 JavaScript .showModalDialog 函数从我的父页面打开一个弹出窗口。弹出窗口包含一些 ASP.NET 验证控件,当用户单击 ASP.NET 按钮提交表单时,这些控件不会显示。如果页面上出现错误,则不会显示验证消息,不会在服务器端更新记录并关闭弹出窗口。

(asp.net 验证控件不会阻止弹出窗口执行服务器回发)

以前有没有人经历过这种行为,有什么办法可以防止吗?

这是我的 showModalDialong 调用源代码:

function OpenChildWindow(id)
{
    var sFeatures = sFeatures="dialogHeight: 525px;";
    sFeatures += "dialogWidth: 900px;";
    sFeatures += "scroll: yes;";
    sFeatures += "status: no;";
    sFeatures += "resizeable: no;";

    var url = "MyPopUp.aspx?ID=" + id;
    var childName = "ChildForm";

    entryWindow = window.showModalDialog(url, childName, sFeatures);

    if (entryWindow == true)
    {
        window.document.getElementById("<%= btnUpdateParent.ClientID %>").click();
    }
}

注意: 当弹出模式关闭时,“单击”一个 ASP.NET 按钮以更新父级上的 ASP.NET UpdatePanel,以显示对弹出窗口中修改的记录的更改。

4

1 回答 1

1

我认为这可能是由于模式对话框和回发的一个臭名昭著的问题。您可以尝试在使用 window.showModalDialog 打开的页面的 head 标记中添加以下内容

<base target="_self" />
于 2009-02-18T21:15:25.060 回答