2013-07-17 119 views
0

我有一个Button,它创建一个TextBoxes动态列表,我也有一个提交信息的Button。但是我不知道如何访问Textboxes的值。下面是代码:从动态文本框中检索值

 if (IsPostBack) 
     { 
      ViewState["count"] = Convert.ToInt32(ViewState["count"]) + 1; 
      int Count = int.Parse(string.Format("{0}", ViewState["count"])); 
      var lstTextBox = new List<TextBox>(); 
      for (int i = 0; i < Counter; i++) 
      { 
       TextBox txtbx = new TextBox(); 
       txtbx.ID = string.Format("txtbx{0}", i); 
       // txtbx.AutoPostBack = true; 
       lstTextBox.Add(txtbx); 
       //txtbx.Text = "initial value"; 
      } 
      Session["lstTextBox"] = lstTextBox; 
     } 
protected void Button1_Click(object sender, EventArgs e) 
    { 
     int total = Counter; 
     for (int i = 0; i < total; i++)//Calls to createbox 
      CreateTextBox(i); 
     //Label1.Text = Counter.ToString(); 
     if (Counter == 4) 
     { 
      Button1.Visible = false; 
     } 
    } 
private int Counter 
    { 
     get { return Convert.ToInt32(ViewState["count"] ?? "0"); } //Fields button counter 
     set { ViewState["count"] = value; } 
    } 
private void CreateTextBox(int j) //Creates the fields/cells 
    {  
      var box = new TextBox(); 
      box.ID = "Textbox" + j; 
      box.Text = "Textbox" + j; 
      var c = new TableCell(); 
      c.Controls.Add(box); 
      r.Cells.Add(c); 
      table1.Rows.Add(r); 
    } 

如何想有Button2抢值。

预先感谢您!

+0

我个人使用JavaScript来添加一个新的文本字段,而不是使用大量后背上..然后我只希望通过所有的控制循环当用户按下提交。 – Izzy

+0

为什么你在'Session'缓存中存储文本框,然后不使用它来实际构建它们? –

+0

我想指出,为了安全起见,您可能需要将if(Counter == 4)'更改为if(Counter> = 4)'。 – Izzy

回答

0

做这样的

foreach(Control c in YourControlHolder.Controls) 
{ 
    if(c is TextBox) 
    { 
     //your code here. 
    } 
} 
相关问题