2009-08-15 18 views
5

Possiedo un'applicazione ASP.NET che utilizza ASP.NET AJAX. Sto usando ASP.NET AJAX Toolkit per presentare una finestra di dialogo a un utente. Quando l'utente fa clic su "Sì" nella finestra di dialogo, voglio gestire quell'evento nel codice sottostante. Tuttavia, ho notato che il mio evento click non è stato raggiunto. Ecco il codice principale:ASP.NET + ModalPopupExtender + Click Event

<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" />      

My Code Dietro:

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

Come faccio a gestire l'evento click di un pulsante che viene utilizzato con un ModalPopupExtender? Che cosa sto facendo di sbagliato?

risposta

11

È necessario rimuovere la proprietà OkButton dalla definizione dell'estensione popup modale. So che questo sembra contro-intuitivo, ma quando si aggiunge quel riferimento, in realtà aggancia le cose per funzionare sul lato client senza causare i postback.

Quindi, solo provare questo:

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

Questo in realtà fissato un altro problema che stavo avendo - ottenere una casella di controllo per essere il check-in grado all'interno di una finestra di dialogo modale. L'impostazione di TargetControlID su un pulsante di collegamento nascosto ha funzionato. - Thnks – MikeD