2011-08-15 133 views
1

我需要添加一個Onclick屬性到我動態生成的LinkButton。如何添加它?如何將Onclick函數添加到動態鏈接按鈕?

這是我來到到目前爲止,並擊中代碼:

foreach(string i in List)//list has more than 50 data's 
     { 
      LinkButton link = new LinkButton(); 
      link.Text = topics; 
      link.ID = topics; 
      link.Attributes.Add("runat", "server"); 
      link.Click += new EventHandler(this.lnk_Click); 
      div_ID.Controls.Add(link); 
      div_ID.Controls.Add(new LiteralControl("<br />")); 
     } 

public void lnk_Click(object sender,EventArgs e) 
{ 
    string ctrlId = ((Control)sender).ID; 
    GMethod(ctrlId); //handles some function in which i pass the id of the particular lnk button 
} 

我可以從我的LinkButton上動態生成調用此lnk_Click。它的onclick屬性沒有被添加到鏈接按鈕。請幫我解決這個問題。我很急。

+0

哪種編程語言? –

+0

@laurent ASP.Net,c#3.5。 我需要代碼在服務器端工作。 – Googler

+0

在什麼事件中,你生成的鏈接按鈕?你是否在每一個帖子後面生成它們?列表中的項目是否與每個帖子相同? – ShellyFM

回答

0

您不需要添加runat =「server」屬性,因爲這將自動完成。你已經分配了OnClick事件處理程序,所以你應該全部設置在那裏。

由於您正在動態創建這些控件,因此請確保您有代碼在回發後重新生成LinkBut​​ton控件,否則您的事件處理程序不會觸發。同時確保在回發後重新生成時分配相同的ID。

+0

@james ..謝謝,但它仍然無法正常工作..當我點擊鏈接後發生了,但我的事件[lnk_Click]沒有得到調用.. 我在正確的道路? mt代碼是否有任何錯誤?請幫我解決這個問題。 – Googler

+0

發佈一些代碼,顯示回發後如何重新生成這些控件。 –

+0

我也有一個問題..我遇到過,它可能只有在pre_init函數。我在頁面加載功能中動態創建鏈接按鈕。當我點擊我的動態生成的鏈接,回發發生,但我的事件不會被調用,我的動態鏈接沒有得到綁定再次..請幫助我在這.. – Googler

0

我還面臨同樣的問題,動態創建的超鏈接的onClick事件沒有被解僱。我錯誤地將超鏈接的動態創建代碼放在「if(!IsPostBack)」中,並且每次都爲超鏈接分配一個隨機ID。因此,請嘗試分配唯一的ID並將代碼保留在「if(!IsPostBack)」之外。將工作。