Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Passare + parametri ad un evento

    Salve a tutti!
    Ho un a necessita: quando clicco su di un bottone(associato ad un evento), vorrei passare tutti i dati di un certo numero di textBox e RadioButton alla funzione che gestisce l'evento...come posso fare?

    Grazie mille!

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ma nell'evento non riesci a riferirti ai controlli di cui parli ?
    Mica c'e' bisogno di passarli al gestore...

  3. #3

    Certo che c'ho provato... solo che non prende i valori, in debug i controlli sono vuoti. :master: Quindi volevo passarglieli.
    Il problema è questo: io ho una serie di riferimenti, in base al bottone che clicco vengono mostrati dei campi piuttosto che altri, a questo punto esce un bottone,il cui event prende i valori inseriti e li manda tramite mail. Accade che i text ed i value dei controlli non vengono presi.
    Ti allego un pò di codice:


    in questa prima parte mostro solo alcuni controlli...

    codice:
    protected static RadioButtonList radio = new RadioButtonList();
        protected static ListItem c1 = new ListItem();
        protected static ListItem c2 = new ListItem();
        protected static ListItem c3 = new ListItem();
        protected static ListItem c4 = new ListItem();
        protected static ListItem c5 = new ListItem();
        protected static Literal t1 = new Literal();
        protected static Literal t2 = new Literal();
        protected static Literal t3 = new Literal();
        protected static Literal t4 = new Literal();
        protected static TextBox tb1 = new TextBox();
        protected static TextBox tb2 = new TextBox();
        protected static int sel = new int();
        protected static DropDownList li = new DropDownList();
        protected static ListItem c6 = new ListItem();
        protected static ListItem c7 = new ListItem();
        protected static ListItem c8 = new ListItem();
        protected static ListItem c9 = new ListItem();
        protected static ListItem c0 = new ListItem();
        protected EventArgs e = new EventArgs();
        public delegate void EventHandler(object sender,EventArgs e,RadioButtonList radio,TextBox tb1);
        //public event EventHandler Click;
    
        protected void onSond1(object sender, EventArgs e)
        {
            sel = 1;
            t1.Text = "
    
    Hai assaggiato il nostro caffè? Come lo giudichi?";
            radio.ID = "radioButton";
            radio.Items.Clear();
            c1.Text = "Scarso";
            c2.Text = "Mediocre";
            c3.Text = "Sufficiente";
            c4.Text = "Buono";
            c5.Text = "Buonissimo";
            c1.Value = "Hai assaggiato il nostro caffè? Come lo giudichi? - Scarso";
            c2.Value = "Hai assaggiato il nostro caffè? Come lo giudichi? - Mediocre";
            c3.Value = "Hai assaggiato il nostro caffè? Come lo giudichi? - Sufficiente";
            c4.Value = "Hai assaggiato il nostro caffè? Come lo giudichi? - Buono";
            c5.Value = "Hai assaggiato il nostro caffè? Come lo giudichi? - Buonissimo";
            radio.Items.Add(c1);
            radio.Items.Add(c2);
            radio.Items.Add(c3);
            radio.Items.Add(c4);
            radio.Items.Add(c5);
            t2.Text = "Commento:
    ";
            tb1.ID = "textBox1";
            tb1.MaxLength = 1024;
            tb1.Columns = 60;
            tb1.Rows = 5;
            t3.Text = "
    </p>";
            spazietto.Controls.Add(t1);
            spazietto.Controls.Add(radio);
            spazietto.Controls.Add(t2);
            spazietto.Controls.Add(tb1);
            spazietto.Controls.Add(t3);
    
            Submit1.OnClientClick = this.inviaSond(this, e, radio, tb1);
            //Submit1.Click += new EventHandler(inviaSond);
            //Submit1.Attributes["OnClick"] = "inviaSond(tb1,radio)";
            //Submit1.Attributes["OnClick"] = "inviaSond(this,e,tb1,radio)";
            Submit1.Visible = true;
            Reset1.Visible = true;
        
        }
    Questo è l'evento che vorrei che prendessi i valori passati...

    codice:
    /*Invia una mail con i dati del sondaggio*/
        protected void inviaSond(object sender,EventArgs e,RadioButtonList radio,TextBox tb1)
        {
            MailAddress from = new MailAddress("no-reply-Tu_cosa_ne_pensi@FlashCafe.com");
            MailAddress to = new MailAddress("saverio@mediagroup98.com");
            MailMessage mess = new MailMessage(from, to);
            SmtpClient server = new SmtpClient("10.0.0.102", 25);
    
            //if (sel == 1)
                {
                    mess.Body = "\n" + radio.SelectedValue + "\nCommento:\n" + tb1.Text + "\n";
                    try
                    {
                        server.Send(mess);
                    }
                    catch (SmtpFailedRecipientsException ex)
                    {
                        for (int i = 0; i < ex.InnerExceptions.Length; i++)
                        {
                            SmtpStatusCode status = ex.InnerExceptions[i].StatusCode;
                            if (status == SmtpStatusCode.MailboxBusy ||
                                status == SmtpStatusCode.MailboxUnavailable)
                            {
                                Console.WriteLine("Delivery failed - retrying in 5 seconds.");
                                System.Threading.Thread.Sleep(5000);
                                server.Send(mess);
                            }
                            else
                            {
                                Console.WriteLine("Failed to deliver message to {0}", ex.FailedRecipient[i]);
                            }
                        }
                    }
            
                
                }
    }}

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Non vorrei dire una cavolata, ma non è che gestendo l'OnClientClick non si accorge delle istanze create (dei controlli) ?


  5. #5
    Ah prima di usare l'OnClientClick ho usato l'evento OnClick="inviaSond" del tag <asp:Button> ma niente... sembra che si dimentichi i valori... eppure gli ho anche dichiarati come static...
    Hai suggerimenti o altri metodi da consigliare?

  6. #6

  7. #7
    Mi avevano suggerito una soluzione con il delegate... ma effettivamente non serve a molto, visto che non funzia!

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.