2010-01-29 54 views
1

我有一個表控制「表1」將控件添加到表控制動態

而且在一個按鈕的點擊事件添加的控件以它爲:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    TableRow row; 
    TableCell cell; 
    for (int i = 0; i < 3; ++i) 
    { 
     TextBox txt = new TextBox(); 
     txt.Text = i.ToString(); 
     row = new TableRow(); 
     cell = new TableCell(); 
     cell.Controls.Add(txt); 
     row.Controls.Add(cell); 
     Table1.Controls.Add(row); 
    } 
} 

,但我不能檢索該在點擊控制另一個按鈕的事件。我認爲這是因爲回傳。

我該如何預防?

回答

1

當動態添加控件時,如果要在回發中訪問它們,則需要每次加載頁面時都要重新創建它們頁面被加載。

將它們添加到一個按鈕的點擊處理程序中,並期望它們在另一個按鈕的點擊處理程序中將不起作用,因爲它們在第二個回發中未被重新創建。

您需要了解asp.net page life cycle並更改頁面的邏輯以適應它。

+0

更好的一步是OnInit! – 2010-01-29 09:07:40

+0

@dittohole - 你假設應用程序邏輯可以在OnInit中完成。我不知道OP想要什麼,所以不能真正提供替代方案。 – Oded 2010-01-29 09:11:11