即使我单击“确定”,模型弹出窗口扩展器仍保持打开状态

Model popup extender remains open even if I click OK

本文关键字:扩展器 窗口 状态 单击 确定 模型      更新时间:2023-09-26
<asp:ModalPopupExtender ID="mpeBusinessException" runat="server" TargetControlID="lnkTemp" PopupControlID="divBusinessException" BackgroundCssClass="modalBackground" DropShadow="false"></asp:ModalPopupExtender>
protected void btnClose_Click(object sender, EventArgs e)
{
    if (ViewState["URL"] != null)
    {
        Response.Redirect(SafeConvert.ToString(ViewState["URL"]));
    }
    else
    {
        mpeBusinessException.Hide();
    }
}

以上是我的ASP标签和时钟按钮事件。我有 2 个问题:

  1. 当我单击"确定"按钮弹出窗口时,弹出窗口消失了,但我导航回此页面弹出窗口出现(可能是缓存问题,但没有找到解决方案。

  2. 当弹出窗口出现并且没有单击"确定"按钮时,我导航到返回页面(通过浏览器(,然后转发到该页面弹出窗口仍然存在。

请帮助我找出解决方案。谢谢

有时由于 Catch 而发生,我没有尝试过自己,但您可以做的是,隐藏ModelPopUp然后重定向到其他页面,

 protected void btnClose_Click(object sender, EventArgs e)
        {
            if (ViewState["URL"] != null)
            {
                mpeBusinessException.Hide();// hide you popup
                Response.Redirect(SafeConvert.ToString(ViewState["URL"]));
            }
            else
            {
                mpeBusinessException.Hide();
            }
        }

也许这能起到把戏作用。

这可能是由于 ajax,您是否正在使用 Updatepanel ?

仅通过删除上一页历史记录来阻止浏览器后退按钮

<script type="text/javascript">
        window.history.forward();
        function noBack() {
            window.history.forward();
        }
    </script>

在模型弹出窗口中调用上述函数

ScriptManager.RegisterStartupScript(Page, GetType(), "Script", "noBack();", true);

按钮事件刷新第 1 期的页面

 protected void btnClose_Click(object sender, EventArgs e)
        {
            if (ViewState["URL"] != null)
            {
                mpeBusinessException.Hide();// hide you popup
                Response.Redirect(SafeConvert.ToString(ViewState["URL"]));
            }
            else
            {
                mpeBusinessException.Hide();
                Response.Redirect(Request.RawUrl);
            }
        }

只是 1 滞后是甚至弹出 OK 按钮按下我们无法回头 通过浏览器按钮,我们必须浏览菜单导航