2009-08-05 3 views
0

Je fais une récupération de mot de passe perdue sur ma page de connexion et je le fais avec ModalPopUpExtender, un Panel et deux d'entre eux dans un UpdatePanel. Mais d'une manière ou d'une autre en cliquant sur la publication complète "btnOkPassRequest" se produit. Les gens avaient des problèmes similaires avec d'autres contrôles, certains que UpdatePanel n'enchaînait évidemment pas. Mais jamais avec un bouton. Qu'est-ce que je rate?à l'intérieur de updatepanel provoque une publication complète non désirée

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
    <asp:HyperLink ID="HyperLink2" runat="server">HyperLink</asp:HyperLink> 
    <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"TargetControlID="HyperLink2" BackgroundCssClass="ModalPopupBG" PopupControlID="pnlPopupPass" CancelControlID="btnCancelPassRequest" OkControlID="Button1"></cc1:ModalPopupExtender> 
    <asp:Panel ID="pnlPopupPass" runat="server" CssClass="ModalPopup"> 
     <div class="ModalHeader">Password recovery</div> 
     <div class="ModalBody"> 
     <p>Please, enter username.....</p> 
     <table> 
     <tr> 
       <td>Username</td> 
       <td><asp:TextBox ID="tbModalUserName" runat="server" class="textbox"></asp:TextBox></td>    
      </tr> 
      </table> 
     <table> 
      <tr> 
      <td></td> 
      <td><asp:Button ID="btnOKPassRequest" runat="server" Text="Request new password" CssClass="button-wide" onclick="btnOKPassRequest_Click" PostBackUrl="~/Login.aspx" /></td> 
      <td><asp:Button ID="btnCancelPassRequest" runat="server" Text="Cancel" CssClass="button-wide"/></td> 
      </tr> 
     </table>   
     </div> 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
    </asp:Panel> 
</ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btnOKPassRequest" EventName="btnOKPassRequest_Click" /> 
</Triggers> 

Répondre

0

En fait, le problème quand je dissapeared passé à AjaxControlToolkit v1, au lieu d'utiliser 3,5, ce qui est vraiment déroutant

+0

vous devez vérifier quelle version de .NET votre application est en cours d'exécution. La boîte à outils a actuellement une version pour 3.5 et 4.0, qui peut cibler des fonctionnalités spécifiques au framework qui peuvent ne pas exister dans les deux frameworks. Je crois que quand il est sorti il ​​était pour la version 2.0, si vous avez installé les add-ons AJAX. Ces bibliothèques et contrôles AJAX ont été intégrés dans .NET dans .NET Framework version 3.5. – ps2goat

2

Je pense que EventName devrait juste être "Cliquez sur" non "btnOKPassRequest_Click" dans le déclencheur

+0

fixe. C'était là comme une tentative de désespoir. Se aussi commenter chez Nick Clarke. Une autre idée? Thanx –

1

Êtes-vous sûr que ce devrait être là?

PostBackUrl="~/Login.aspx" 

Comme sans cela cela fonctionne très bien pour moi.

J'ai également retiré le déclencheur, mais si vous avez besoin du déclencheur, EventName doit être Click.

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:HyperLink ID="HyperLink2" runat="server">HyperLink</asp:HyperLink> 
      <asp:Panel ID="pnlPopupPass" runat="server" CssClass="ModalPopup"> 
       <div class="ModalHeader"> 
        Password recovery</div> 
       <div class="ModalBody"> 
        <p> 
         Please, enter username.....</p> 
        <table> 
         <tr> 
          <td> 
           Username 
          </td> 
          <td> 
           <asp:TextBox ID="tbModalUserName" runat="server" class="textbox"></asp:TextBox> 
          </td> 
         </tr> 
        </table> 
        <table> 
         <tr> 
          <td> 
          </td> 
          <td> 
           <asp:Button ID="btnOKPassRequest" runat="server" Text="Request new password" CssClass="button-wide" 
            OnClick="btnOKPassRequest_Click" /> 
          </td> 
          <td> 
           <asp:Button ID="btnCancelPassRequest" runat="server" Text="Cancel" CssClass="button-wide" /> 
          </td> 
         </tr> 
        </table> 
       </div> 
       <asp:Button ID="Button1" runat="server" Text="Button" /> 
      </asp:Panel> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
+0

J'ai ce PostBackUrl = "~/Login.aspx" là parce qu'il y a d'autres contrôles sur la page qui postent à d'autres URL. J'ai également trouvé un problème au niveau de la balise de formulaire, qui causait mes problèmes (et j'avais besoin de PostBackUrl = "~/Login.aspx pour le remplacer):

Mais quand j'ai enlevé action =" ... "ça ne marche toujours pas, une autre idée? –

+0

Tant que vous voulez le UpdatePanel à PostBackUrl n'est pas nécessaire Est-ce que les autres contrôles sont en dehors du UpdatePanel dans votre exemple? –

+0

Je sais que UpdatePanels ne joue pas bien avec tous les contrôles, donc j'ai fait une recherche et j'ai trouvé ceci: http://blogs.technet.com/kirtid/archive/2007/05/03/using-updatepanels-with-modalpopups.aspx Peut-être que ça aide. –

Questions connexes