2009-06-30 76 views
0

我有一些代碼,當用戶點擊一個特定的按鈕時,它會動態地創建新的按鈕。然而,當我點擊其中任何一個按鈕時,爲這些動態創建的按鈕定義的EventHandlers不會執行。下面是錯誤的代碼片斷:如何在EventHandler中創建一個EventHandler

protected void Page_Load(object sender, EventArgs e) 
{ 
    ....... 
    btn1.Click += new EventHandler(this.btn1_Click); 
    ....... 
} 

protected void btn1_Click(object sender, EventArgs e) 
{ 
    ....... 
    LinkButton btn2 = new LinkButton(); 
    btn2.Click += new EventHandler(this.btn2_Click); 
    ......... 
} 

protected void btn2_Click(object sender, EventArgs e) 
{ 
    ....... 
} 

代碼執行永遠不會進入btn2_Click()。我在這裏做錯了什麼?

回答

1

嘗試將LinkBut​​ton btn2聲明爲全局變量,並在創建控件時連線事件btn2.Click + = new EventHandler(this.btn2_Click)。

0

btn2只要您離開btn1事件處理程序就會消失。這是一個局部變量,一旦超出範圍就會消失。

你有沒有看到第二個按鈕?你點了嗎?如果是這樣,那麼你點擊了錯誤的按鈕。您添加的這一個從未出現在您的頁面上。

爲了使控件變爲可見(並將其呈現爲HTML),它必須放置在可見控件的Controls集合中。你沒有做任何事情。