【问题标题】:How to hide ajax modal popup extender when clicking browser's back button?单击浏览器的后退按钮时如何隐藏 ajax 模态弹出扩展器?
【发布时间】:2013-06-01 12:33:14
【问题描述】:

我在 asp.net 的服务器端单击按钮期间使用 ajax 模式弹出扩展器显示了一条确认消息。显示该确认消息后,当我单击浏览器的后退按钮时,再次弹出相同的确认消息。单击浏览器的后退按钮时如何隐藏弹出消息?

我的代码是

    <asp:Button ID="btnShowPopup" runat="server" Style="display: none" />
    <asp:Panel runat="server" ID="pnlInterfaceDetails" Style="display: none;">
                <asp:Label ID="Label1" runat="server" Text="Confirmation Message" Font-Bold="true"
                    Font-Size="10pt" Style="color: White; font-family: Sans-Serif Verdana Arial"></asp:Label>
                <table>
                    <tr style="height: 35px">
                        <td colspan="2">
                            <b><span style="color: Black;">Data Saved Successfully.</span></b>
                        </td>
                    </tr>
                    <tr style="height: 35px">
                        <td align="center" colspan="2">
                            <asp:Button runat="server" ID="btnConfirmClose" Text="Close" ToolTip="Close" Width="65px"
                                OnClick="btnConfirmClose_Click" CssClass="buttonOrangebg" />
                        </td>
                    </tr>
                </table>
    </asp:Panel>
    <asp:ModalPopupExtender runat="server" ID="mpeInterfaceDetails" TargetControlID="btnShowPopup"
        BackgroundCssClass="modalBackground" PopupControlID="pnlInterfaceDetails" />
</div>

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    这样的事情应该可以工作。

    $(window).on('beforeunload', function(){ 
        $('your behaviorid').hide();
    });
    

    如果您想变得更漂亮,您可以检测返回历史记录,但这会在页面卸载时将其隐藏。这是在卸载之前,如果您愿意,您还可以在其中添加提示以确保他们想要单击返回。

    以上需要Jquery。

    【讨论】:

    • origin1tech:感谢您的回复。此代码无法正常工作。请针对此问题提供任何其他解决方案。我在保存操作期间显示了此弹出消息。保存数据后,我想通过浏览器的后退按钮单击返回上一页..
    • 不知道您的应用,但上述方法确实可以隐藏模式。我很确定。您也可以使用“卸载”事件。使用网络表单作为您的“视图状态”将维护所有数据,因此至少在大多数情况下保存然后使用返回是一个坏主意。为什么?因为您最终可能会收到重复的帖子。通常你会做的是重定向。 Response.Redirect('/你的网址在这里');
    • 添加到当使用后退按钮时,页面会记住我所说的视图状态,以防止最后一个状态,您必须使用视图状态或添加会话变量或其他内容检测这是第二次点击页面(例如后退按钮)。如果您想尝试,请告诉我,我将通过使用会话或自定义视图状态的示例进行编辑。
    • 首先我将网格视图中的详细信息与一页中的搜索条件相关联。单击网格视图中可用的超链接后,页面将重定向到编辑页面。在该页面中,我正在保存数据。保存数据后,我必须通过另一个按钮单击发送电子邮件。该电子邮件按钮仅在单击保存按钮后启用。如果该页面中没有任何其他可用的操作,我肯定会使用 response.redirect。这就是为什么我在保存操作后保留该页面详细信息的原因。但是每当我点击浏览器的后退按钮时,模态弹出扩展器就会一次又一次地显示。
    • 我会在保存编辑后公开邮件发送方法。使用 back 对我来说没有意义。如果需要像我说的那样做,并将一些 val 存储在会话 var 中,重定向后您可以检查该按钮并在第二次点击页面时使该按钮可用。一旦检查是否为真,请清除它。这就是我的处理方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多