Pregunta

Estoy desarrollando un control de usuario y tiene un botón asp.net dentro de jQuery Dialog, pero cuando presiono el botón no pasa nada, quiero decir que no llama al evento de clic de botón en el servidor, lo he intentado

dlg.parent().appendTo(jQuery("form:first")); 

pero tampoco me ayudó, ¿es posible lograr esto dentro de UserControl de asp.net? También me pregunto si puedo usar UpdatePanel dentro del cuadro de diálogo o no?

¿Fue útil?

Solución

Puede hacer que el botón sea un botón de diálogo y colocar un botón asp.net en la página con el ID de HiddenButton y envolverlo en un div con un estilo de pantalla : ninguno;

Entonces el botón no es visible. (No debe ser visible = " false " por lo que el botón se representa)

En el cuadro de diálogo javascript, agregue un botón que tenga el efecto de hacer clic en el botón oculto

  jQuery("#dialog").dialog({
        buttons: {
            'ButtonText': function() {
                //save the session
           __doPostBack('<%# HiddenButton.ClientID %>', '')
                jQuery(this).dialog('close');
            }
        }
    });

y agrega un controlador de clic de asp al botón oculto

<div style="display:none;">
    <asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>

El evento de clic en el servidor se activará cuando se haga clic en el botón de diálogo

Espero que esto ayude a usar este patrón todo el tiempo

Otros consejos

Sospecho que puede tener algo que ver con que ASP.NET no pueda encontrar el botón dentro del formulario.

Utilice la configuración del evento .live en jQuery: enlace el evento antes de crear el cuadro de diálogo con .live y debería funcionar ...

Eventos en vivo en jQuery

Terminarás con algo como esto en tu función document.ready:


$("#btn").live("click", function(){
  // Do something
});


$("#dialog").dialog({
    ... 
}

Tuve el mismo problema. Terminé sacando el botón del cuadro de diálogo, ocultándolo con css y luego activándolo desde el evento de cierre del cuadro de diálogo (lo haré de forma más limpia más adelante, pero esto ilustra el problema, al menos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top