Как мне запретить ModalPopupExtender показывать всплывающее окно, когда пользователь переходит на страницу с помощью кнопки возврата в браузере?
Я попытался реализовать решение, найденное здесь, которое, по сути, обрабатывает ModalPopup с использованием сценария на стороне клиента но возникли проблемы с его реализацией. ($ find ("modPop") всегда возвращает ноль).
Есть ли другие способы справиться с этим?
РЕДАКТИРОВАТЬ: Сюжет сгущается. Это происходит только потому, что я использую UpdatePanel внутри всплывающего окна. Код ниже должен дублировать ошибку. Также обратите внимание, что использование кнопки-заглушки обязательно.
- Нажмите кнопку, чтобы отобразить модальное окно
- Подтвердить модальный
- Уйти со страницы
- Вернуться на страницу с кнопкой назад
- Модальное окно нежелательно.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test.aspx.vb" Inherits="Test" %>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"> </asp:ScriptManager>
<span style="display:none;"><asp:Button ID="btnDummy" runat="server" Text="Dummy" /></span>
<asp:Button id="btnShow" runat="server" Text="Show Modal"/>
<ajax:ModalPopupExtender ID="mpTest" runat="server" TargetControlID="btnDummy" PopupControlID="pnlTest"></ajax:ModalPopupExtender>
<asp:Panel id="pnlTest" style="display:none;border:10px solid green" DefaultButton="btnTest" runat="server">
<asp:UpdatePanel ID="upTest" runat="server">
<ContentTemplate>
<asp:Button ID="btnTest" runat="server" Text="Test" />
</ContentTemplate>
<Triggers>
<ajax:AsyncPostBackTrigger ControlID="btnTest" />
</Triggers>
</asp:UpdatePanel>
</asp:Panel>
<a href="http://stackoverflow.com">StackOverflow</a>
</div>
</form>
Partial Class Test Inherits System.Web.UI.Page Protected Sub btnShow_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShow.Click mpTest.Show() End Sub Protected Sub btnTest_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTest.Click mpTest.Hide() End Sub End Class
Я думаю, это имеет смысл, поскольку, когда вы подтверждаете модальное окно, полной обратной передачи не происходит, но мне нужно сделать это таким образом. Есть ли обходные пути?