2009-08-15 6 views
5

J'ai une application ASP.NET qui utilise ASP.NET AJAX. J'utilise ASP.NET AJAX Toolkit pour présenter une boîte de dialogue à un utilisateur. Lorsque l'utilisateur clique sur "Oui" dans la boîte de dialogue, je veux gérer cet événement dans le code derrière. Cependant, j'ai remarqué que mon événement de clic n'est pas atteint. Voici le code principal:ASP.NET + ModalPopupExtender + événement de clic

<asp:Panel ID="dialogContinuePanel" runat="server" style="display:none;" DefaultButton="yesButton">  
    <div>Are you sure you want to continue?</div> 
    <div> 
    <asp:ImageButton ID="yesButton" runat="server" AlternateText="Yes" ImageUrl="/resources/yes.png" OnClick="yesButton_Click" /> 
    <asp:ImageButton ID="noButton" runat="server" AlternateText="No" ImageUrl="/resources/no.png" /> 
    </div> 
</asp:Panel> 

<asp:LinkButton ID="hiddenLinkButton" runat="server" Text="" /> 
<cc1:ModalPopupExtender ID="dialogErrorExtender" runat="server" OkControlID="yesButton" 
    TargetControlID="hiddenLinkButton" PopupControlID="dialogContinuePanel" 
    CancelControlID="noButton" />      

Mon code Derrière:

protected void yesButton_Click(object sender, EventArgs e) 
{ 
    string argument = yesButton.CommandArgument; 
    // Do some processing and redirect the user 
} 

Comment puis-je gérer l'événement clic d'un bouton qui est utilisé avec un ModalPopupExtender? Qu'est-ce que je fais mal?

Répondre

11

Vous devez supprimer la propriété OkButton de votre définition d'extension contextuelle modale. Je sais que cela semble contre-intuitif, mais lorsque vous ajoutez cette référence, cela accroît le travail du côté client sans provoquer de publication.

donc juste essayer ceci:

<cc1:ModalPopupExtender ID="dialogErrorExtender" runat="server" 
    TargetControlID="hiddenLinkButton" PopupControlID="dialogContinuePanel" 
    CancelControlID="noButton" /> 
+0

Cela fait fixé un autre problème que j'avais - obtenir une case à cocher pour être l'enregistrement dans un pouvoir de dialogue modale. Définir le TargetControlID à un bouton de lien caché a fait l'affaire. - Thnks – MikeD

Questions connexes