 
 
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]);
                        }
                    }
                }
        
            
            }
}}