Visualizzazione dei risultati da 1 a 8 su 8

Discussione: invio mail

  1. #1

    invio mail

    Questo è il metodo sendMail che assegno all'evento OnClick del bottone mailButton.
    <script language="C#" runat="server">
    public void sendMail(Object Src, EventArgs E){
    //Creo l'oggetto MailMessage
    MailMessage mailMsg = new MailMessage();

    //Configurazione dei parametri
    mailMsg.From = mailFrom.Text;
    mailMsg.To = "mia e mail";
    mailMsg.Subject = mailSubject.Text;
    mailMsg.Body = mailMessage.Text;
    //Formato della mail
    mailMsg.BodyFormat = MailFormat.Text;
    SmtpMail.SmtpServer = "mail.libero.it";
    try{
    //Invio della mail
    SmtpMail.Send(mailMsg);
    mailButton.Attributes.Add("OnClick", "alert('Messaggio inviato con successo. Sarete contattati al più presto. Grazie');");
    //Pulitura dei campi di testo
    mailFrom.Text = "";
    mailSubject.Text = "";
    mailMessage.Text = "";
    }
    catch (Exception ex){
    //In caso di errore
    //mailButton.Attributes.Add("OnClick", "alert('L'e-mail non può essere inviata a causa di un errore interno del server, siete pregati di riprovare più tardi. Grazie');");
    }
    }
    </script>

    Quando clicco sul bottone per inviare la mail succede che esegue il corpo del try, cioè: invia la mail, mi pulisce i campi di testo, ma mi salta la visualizzazione dell'alert.
    C'è qualcuno che mi può aiutare?

    Inoltre se tolgo // dal corpo catch ho sulla barra di stato del browser un errore di javascript anche se la sintassi è giusta come potete vedere.
    Nibbles

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    si perchè

    lu esegue lo script in c#, il javascript viene eseguito successivamente all'evento in cui hai fatto add.

    per intenderci, se vuoi far comparire il messaggio aggiunto in java devi premere un'altra volta il bottone...

    se trovi una soluzione a questo problema posta, perchè secondo me non ha soluzione

    koning

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Nell'esempio che ti mando, un pulsante invia la richiesta al server per fare una azione. Simulo un errore ed un conseguente alert nel client.
    Vedi se ti può servire.

    codice:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim i, j As Integer, z As Double
            i = 1
            j = 0
            Try
                z = i \ j
    
            Catch er As Exception
                MsgBox("'" & er.Message & "'")
            End Try
    
        End Sub
    
        Protected Overloads Sub MsgBox(ByVal s$)
            s = s.Replace("'", "\'")
            Dim ScriptString$ = ""
            ScriptString += "<script language=javascript>"
            ScriptString += "alert('" & s & "')"
            ScriptString += "</script>"
            Page.RegisterClientScriptBlock("clientscript", ScriptString)
    
        End Sub

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Dimenticavo, nell'vento Load della pagina, metti:

    Me.SmartNavigation = True

    è basic, perciò dovrai tradurlo in c#

  5. #5

    Re: si perchè

    Originariamente inviato da koning
    lu esegue lo script in c#, il javascript viene eseguito successivamente all'evento in cui hai fatto add.

    per intenderci, se vuoi far comparire il messaggio aggiunto in java devi premere un'altra volta il bottone...

    se trovi una soluzione a questo problema posta, perchè secondo me non ha soluzione

    koning
    Forse ho trovato un modo per poter risolvere questo problema.
    posto solo il try:
    string messaggio = "";
    try{
    //Invio della mail
    SmtpMail.Send(mailMsg);
    messaggio = "Mail inviata";
    //Pulitura dei campi di testo
    mailFrom.Text = "";
    mailSubject.Text = "";
    mailMessage.Text = "";
    }
    catch (Exception ex){
    //In caso di errore
    messaggio = "Mail non inviata";
    }
    Fuori dal try...catch ci mettiamo l'istruzione seguente passandogli la stringa messaggio così ogni volta fa l'alert col messaggio desiderato a seconda dell'errore o dell'invio andato a buon fine, solo che questo qui sotto è sbagliata perchè non so come si fa il passaggio della stringa a un comando javascript:

    mailButton.Attributes.Add("OnClick", "alert('messaggio');");

    Ti è chiaro Konig cosa intendo? Credo che così si risolva!
    Dimmi se ci riesci!
    Nibbles

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    il messaggio

    si passa così

    variabile Message as string

    alert('" & Message & "');

    ma dubito che funzioni, perchè al'add viene eseguito a durante il primo click e quindi l'istruzione java è disponibile al prossimo click...

    prova per favore e dimmi se sbaglio...

    grazie

    koning

  7. #7
    Ho provato un pochino e a un primo impatto sembra funzionare a metà, ma credo sia più veritiero ciò che dici te che quello che dico io. Ma ci dovrà pur essere un modo! Farò altre prove e ti saprò dire!
    Nibbles

  8. #8
    Devo arrendermi konig ed accettare la tua risposta! Ho provato in varie maniere ma il risultato è sempre lo stesso!!
    Nibbles

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.