2011-08-15 92 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)”之外。将工作。