【问题标题】:ASP.NET validation not executing in a JavaScript showModalDialog callASP.NET 验证未在 JavaScript showModalDialog 调用中执行
【发布时间】:2009-02-18 15:38:26
【问题描述】:

我目前使用 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,以显示对弹出中修改的记录的更改上窗口。

【问题讨论】:

  • 提供一些代码将有助于解决您的问题。
  • 我已经用 showModalDialog 源代码更新了问题。

标签: asp.net javascript validation modalpopups showmodaldialog


【解决方案1】:

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

<base target="_self" />

【讨论】:

  • 我在模式框中打开的页面正在使用我的应用程序中所有页面共享的母版页。
  • 我尝试将 添加到母版页,但没有成功。
猜你喜欢
  • 1970-01-01
  • 2012-06-14
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多