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?

È stato utile?

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 ...

Eventi dal vivo in jQuery

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top