Button non postback nella finestra di dialogo jQuery all'interno di UC
-
05-07-2019 - |
Domanda
Sto sviluppando un controllo utente e ha un pulsante asp.net nella finestra di dialogo di jQuery ma quando premo il pulsante non succede nulla, intendo che non chiama l'evento clic sul pulsante sul lato server, ho provato
dlg.parent().appendTo(jQuery("form:first"));
ma non ha aiutato anche me, è possibile ottenerlo all'interno di UserControl asp.net? Inoltre mi chiedo se posso usare UpdatePanel nella finestra di dialogo o no?
Soluzione
Puoi rendere il pulsante un pulsante di dialogo e inserire un pulsante asp.net nella pagina con l'ID di HiddenButton e avvolgerlo in un div con uno stile di display: none;
Quindi il pulsante non è visibile. (Non deve essere visibile = " false " quindi il pulsante viene visualizzato)
Nella finestra di dialogo javascript aggiungi un pulsante che ha l'effetto di fare clic sul pulsante nascosto
jQuery("#dialog").dialog({
buttons: {
'ButtonText': function() {
//save the session
__doPostBack('<%# HiddenButton.ClientID %>', '')
jQuery(this).dialog('close');
}
}
});
e aggiungi un gestore di clic ASP al pulsante nascosto
<div style="display:none;">
<asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>
L'evento clic sul lato server verrà generato quando si fa clic sul pulsante della finestra di dialogo
Spero che questo mi aiuti a usare sempre questo schema
Altri suggerimenti
Sospetto che potrebbe essere qualcosa a che fare con ASP.NET non riuscire a trovare il pulsante all'interno del modulo.
Usa la configurazione dell'evento .live in jQuery - collega l'evento prima di creare la finestra di dialogo usando .live e dovrebbe funzionare ...
Ti ritroverai con qualcosa di simile nel tuo documento. Già funzione:
$("#btn").live("click", function(){
// Do something
});
$("#dialog").dialog({
...
}
Ho avuto lo stesso problema. Ho finito per estrarre il pulsante dalla finestra di dialogo, nasconderlo con CSS e quindi attivarlo dall'evento di chiusura nella finestra di dialogo (lo farò più chiaramente in seguito, ma questo illustra il problema, almeno).