2009-08-15 25 views
5

Tengo una aplicación ASP.NET que usa ASP.NET AJAX. Estoy usando ASP.NET AJAX Toolkit para presentar un diálogo a un usuario. Cuando el usuario hace clic en 'Sí' en el cuadro de diálogo, quiero manejar ese evento en el código subyacente. Sin embargo, noté que mi evento click no se está alcanzando. Aquí está el código principal:ASP.NET + ModalPopupExtender + Click Evento

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

Mi código subyacente:

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

¿Cómo controlar el evento clic de un botón que se utiliza con un ModalPopupExtender? ¿Qué estoy haciendo mal?

Respuesta

11

Debe eliminar la propiedad OkButton de su definición modal del extensor emergente. Sé que esto parece contrario a la intuición, pero cuando agrega esa referencia, en realidad conecta las cosas para trabajar en el lado del cliente sin causar devoluciones de datos.

Así que intente esto:

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

En realidad, esto fija otro problema que tenía - conseguir una casilla de verificación para ser capaz de registro de entrada dentro de un cuadro de diálogo modal. Establecer el TargetControlID a un botón de enlace oculto hizo el truco. - Thnks – MikeD

Cuestiones relacionadas