1.495 messaggi dal 27 dicembre 2005
Ciao a tutti.
Ho dei problemi a utilizzare la Jquery dialog con asp.net.

Quello che vorrei fare è al click di un bottone far apparire una dialog box con la conferma di un operazione e due bottoni per procedere o meno.

Se decido di procedere avviare un operazione lato server e alal fine far apparire un ' altra dialog con la conferma dell'operazione.

Come faccio a collegare i vari eventi ?

Fino adesso ho fatto cosi :

     $(document).ready(function(){
           
            $('#dialog-message').dialog({
                modal: true,
                autoOpen: false,
                resizable:false,
                show: "blind",
                hide: "explode",
                buttons: {
                    "Chiudi": function() {
                        $( this ).dialog( "close" );
                        window.opener.document.getElementById('cerca').click();self.close();
                    }
                }
            });

            $('#conferma_mail').dialog({
                modal: true,
                autoOpen: false,
                resizable:false,
                show: "blind",
                hide: "explode",
            });
           

            $("#btn_email").on("click", function(){
                $( "#conferma_mail" ).dialog( "open" );
            });


 <div id="dialog-message" title="Email inviata con successo">
        <p>
            <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
            Email inviata con successo alla filiale.
        </p>
    </div>

    <div id="conferma_mail" title="Sei sicuro di voler inviare la mail ?">
        <p>
            <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
            <asp:Button ID="btn_inviamail" runat="server" Text="Invia email" UseSubmitBehavior="False" />
            <asp:Button ID="Button2" runat="server" Text="Button" />
        </p>
    </div>


Adesso dentro la div per confermare l'operazione ho messo due bottoni che scatenano lato server delle operazioni e alla fine di tutto dovrei far comparire la dialog finale di conferma operazione avvenuta :

 ScriptManager.RegisterStartupScript(Me.Page, Me.GetType, "Email_OK", "$('#dialog-message').dialog(""open"");", True)


La prima dialog mi viene fatta vedere poi quando clicco sul tasto lato server pe la conferma non succede nulla.
60 messaggi dal 08 aprile 2010
Ciao, io non lo gestirei con un asp button comunque prova ad impostare
sul bottone ClientIdMode="static" , perchè altrimenti l'id del bottone viene rinominato.
1.495 messaggi dal 27 dicembre 2005
emiliano.fusaro ha scritto:
Ciao, io non lo gestirei con un asp button comunque prova ad impostare
sul bottone ClientIdMode="static" , perchè altrimenti l'id del bottone viene rinominato.


Già provato ma non è quello.

Dato che sicuramente sbaglio, io ancora devo capire bene come usare Jquery integrandolo con asp.net e usarlo con eventi lato server.
60 messaggi dal 08 aprile 2010
OK , se ti può essere di aiuto ti posto un mio semplice esempio (l'azione server viene generata da un get)

//Esempio Finestra Dialog
<div id="div2" style="display: none">Sei Sicuro Di Voler Scaricare Questo Collo?</div>

//elemento html che genera la dialog (viene generato direttamente al load della pagina)
<div class="button" onclick="CancellaRecord('Default.aspx?carico=3601&consegna=50&collo=1&box=15')" >Scaricato</div>

//Jquery Di Dialogo che effettua chiamata get
<script type="text/javascript">
function CancellaRecord(recordDaCancellare) {
$("#div2").dialog('open');
$("#div2").dialog({
modal: true,
autoOpen: true,
buttons: {
"si": function () {
window.location.href = recordDaCancellare;
},
"no": function () {
$("#div2").dialog("close");
},
}
});
}
</script>


(contiene il link in base a quello genero azione server)
window.location.href = recordDaCancellare;
1.495 messaggi dal 27 dicembre 2005
Quello che volevo sapere io posso usare la dialog ed inserirci dentro dei bottoni che eseguono azioni lato server ?
93 messaggi dal 25 maggio 2005
ciao,
piuttosto che utilizzare dei bottoni lato server, utilizzerei tutto in JQuery, visto che i modalPopUp sono fatti con quello.

ecco quello che farei:
1 - dalla dialog conferma_mail toglierei i due pulsanti asp.net e li farei come l'altra dialog (conferma - annulla)
2 - La funzione che dovrebbe essere eseguita lato server alla conferma della mail, la metterei in un PageMethod o un WebService
3 - Quando viene premuto il pulsante di conferma, viene richiamato tramite JQuery Ajax il PageMethod/WebService e gestito l'esito
4 - Esito positivo visualizza la seconda dialog, esito negativo visualizza un alert (ad esempio) e non chiude la dialog di conferma.

Riferimenti
PageMethod:
http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.enablepagemethods.aspx

WebService:
http://msdn.microsoft.com/en-us/library/byxd99hx(v=vs.71).aspx

JQuery Ajax:
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
Modificato da Gluck il 09 ottobre 2012 16.15 -
1.495 messaggi dal 27 dicembre 2005
Gluck ha scritto:
ciao,
piuttosto che utilizzare dei bottoni lato server, utilizzerei tutto in JQuery, visto che i modalPopUp sono fatti con quello.

ecco quello che farei:
1 - dalla dialog conferma_mail toglierei i due pulsanti asp.net e li farei come l'altra dialog (conferma - annulla)
2 - La funzione che dovrebbe essere eseguita lato server alla conferma della mail, la metterei in un PageMethod o un WebService
3 - Quando viene premuto il pulsante di conferma, viene richiamato tramite JQuery Ajax il PageMethod/WebService e gestito l'esito
4 - Esito positivo visualizza la seconda dialog, esito negativo visualizza un alert (ad esempio) e non chiude la dialog di conferma.

Riferimenti
PageMethod:
http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.enablepagemethods.aspx

Grazie della risposta, avendo letto i link sopra sono giunto a questa conclusione e ditemi se sbaglio.
Devo trasformare la mia routine che adesso invia una mail lato server in un webmethod (contrassegnandolo con l ' apposito attributo) .
Successivamente registro tramite javascript nel document.ready che al click del pulsante apro la prima dialog.
La prima dialog conterrà due bottoni,uno invia email e l altro annulla.
Se clicca invia mail tramite jquery ajax chiamo il webmethod e se tutto ve bene alla funzione success dico sempre tramite javascript di chiudere la prima dialog e aprire la seconda che conterrà solo un messaggio di conferma.

Ho capito bene ?


Un altra cosa visto che uso degli update panel il document.ready viene eseguito solo una volta.
Come posso ovviare al problema ?
Uso il pageload di javascript oppure i metodi on di jquery ?

WebService:
http://msdn.microsoft.com/en-us/library/byxd99hx(v=vs.71).aspx

JQuery Ajax:
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
Modificato da Gluck il 09 ottobre 2012 16.15 -
1.495 messaggi dal 27 dicembre 2005
In giro per la rete ho trovato questo oggi la provo e vi faccio sapere.

  <script type="text/javascript">
        $(function () {
            $("#dialog").dialog({
                buttons: {
                    Ok: function () {
                        $("[id*=Button1]").click();
                    },
                    Close: function () {
                        $(this).dialog('close');
                    }
                }
            });
        });
    </script>

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.