2011-11-30 85 views
1

這是我在做c#web應用程序的應用程序
我正在創建鏈接按鈕,如下所示。點擊事件動態創建的鏈接按鈕不會觸發?

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
      {   
       LinkButton ln = new LinkButton(); 
       ln.Text = ds.Tables[0].Rows[i].ItemArray[0].ToString(); 
       ln.ID = ds.Tables[0].Rows[i].ItemArray[1].ToString(); 
       divonlne.Controls.Add(ln); 
       divonlne.Controls.Add(new LiteralControl("<br/>")); 
      } 

我的單擊事件如下:

ln.Click += new EventHandler(Clicked); 

在我的單擊事件我得到LinkBut​​ton的文字和標識如下

protected void Clicked(object sender, EventArgs e) 
     { 
      LinkButton lno = sender as LinkButton; 
      Session["Toname"] = lno.Text; 
      Session["idto"] = lno.ID; 
     } 

但這只是當最後一個環節射擊按鈕被點擊。 任何人都可以幫我嗎?

回答

2

你已經寫了你如何訂閱Click事件,但在你的示例中,我無法看到它。 也許你在錯誤的地方訂閱。該工程...

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{   
    LinkButton ln = new LinkButton(); 
    ln.Text = ds.Tables[0].Rows[i].ItemArray[0].ToString(); 
    ln.ID = ds.Tables[0].Rows[i].ItemArray[1].ToString(); 
    ln.Click += new EventHandler(Clicked); 
    divonlne.Controls.Add(ln); 
    divonlne.Controls.Add(new LiteralControl("<br/>")); 
} 
-2

當自定義控件使用動態控制,記得與作INamingContainer界面來裝飾你的類。這可以確保重新創建的控件正確地適合層次結構,並記住它們應該處理的事件。

+0

這個答案應該是一個評論,並且與問題無關。 – newfurniturey

相關問題