Comment empêcher un ModalPopupExtender d'afficher la fenêtre contextuelle lorsqu'un utilisateur accède à la page via le bouton Précédent du navigateur?ModalPopupExtender affiche une fenêtre contextuelle lorsque l'utilisateur appuie sur le bouton Précédent
J'ai essayé d'implémenter la solution trouvée here qui gère essentiellement le ModalPopup en utilisant un script côté client mais qui a rencontré des problèmes avec son implémentation. ($ find ("modPop") renvoie toujours la valeur null).
Existe-t-il d'autres techniques pour gérer cela?
EDIT: La courbe s'épaissit. Cela se produit uniquement parce que j'utilise un UpdatePanel à l'intérieur du popup. Le code ci-dessous devrait dupliquer l'erreur. Notez également que l'utilisation du bouton factice est requise.
- Cliquez sur le bouton pour afficher modal
- Confirmation modal
- quittez la page
- Naviguer Retour à la page w/bouton retour
- Modal apparaît undesireably.
<%@ 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
Je pense que cela a un sens que lorsque vous confirmez le modal postback complet ne se produit pas mais je dois le faire de cette façon. Y a-t-il des solutions de contournement?
C'est ainsi que j'ai testé la solution à l'origine et cela n'a pas fonctionné. – plntxt
Essayez de définir explicitement le 'BehaviorId' du popup modal – batwad