2013-07-17 168 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. 
    } 
} 
相關問題