【问题标题】:Model popup extender remains open even if I click OK即使我单击“确定”,模态弹出扩展器仍保持打开状态
【发布时间】:2016-05-02 12:07:57
【问题描述】:
<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 标签和时钟按钮事件。我有两个问题:

  1. 当我点击 OK 按钮弹出消失但我导航回到此页面时出现弹出(可能是缓存问题但没有找到解决方案。

  2. 当弹出窗口出现并且没有点击 OK 按钮时,我导航到后一页(通过浏览器),然后前进到该页面仍然弹出。

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

【问题讨论】:

    标签: javascript c# jquery asp.net asp.net-ajax


    【解决方案1】:

    有时由于 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();
                }
            }
    

    也许这会起到作用。

    【讨论】:

    • protected void btnClose_Click(object sender, EventArgs e) { if (ViewState["URL"] != null) { mpeBusinessException.Hide();// 隐藏你的弹出窗口 Response.Redirect(SafeConvert.ToString (ViewState["URL"])); } else { mpeBusinessException.Hide(); Response.Redirect(Request.RawUrl); // a/c 到你的逻辑我只是重新加载页面(自我重定向)这个解决问题没有。 1 } }
    • 但浏览器返回和forrwrad按钮不会隐藏导航弹出窗口
    • 我知道这个问题会出现......作为一种解决方案,我们必须像在第一个场景中那样隐藏弹出窗口。每当我们从这个弹出页面导航到另一个页面时
    • 这可能不是正确的解决方案..希望它会起作用并调查一下..也许它可以帮助你stackoverflow.com/questions/9619595/…
    【解决方案2】:

    这可能是由于 ajax 的原因,您使用的是 Updatepanel 吗?

    【讨论】:

    • 尝试设置更新面板属性 UpdateMode="Always"。
    • 请发表评论,这不是问题的答案
    【解决方案3】:

    仅通过删除上一页历史记录来防止浏览器返回按钮

    <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 按钮,我们无法返回 通过浏览器按钮,我们必须通过菜单导航进行导航

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      相关资源
      最近更新 更多