日期:2014-05-19  浏览次数:20401 次

关于控件数组触发事件?
public   void   getgroup(int   count)
{
lik=new   LinkButton[count];
for(int   i=0;i <count;i++)
{
lik[i]=new   LinkButton();
lik[i].Text=i.ToString()+ "-- ";
lik[i].Click+=new   System.EventHandler(this.lik_Click);
                                this.Panel1.Controls.Add(lik[i]);
                               
}
}
private   void   lik_Click(object   sender,   System.EventArgs   e)
{
Response.Write(((LinkButton)sender).Text   +   "   was   clicked   ! ");   //通过sender判断激发事件的控件
}

private   void   Button1_Click(object   sender,   System.EventArgs   e)
{
int   num=(int)Session[ "num "];
getgroup(num);
}

为什么我样触发不到事件     要如何设置呢?   谢谢

------解决方案--------------------
在每次page_load的时候,必须创建这些linkbutton
必须先创建服务器控件,它的事件才会执行
------解决方案--------------------
不想在pageload创建就要自己写自定义控件
------解决方案--------------------
getgroup的postback时有没有调用?
------解决方案--------------------
1.把初始化代码的放在page_load里,不管IsPostBack真假都要执行初始化代码。
2.如果lik_Click函数放在.cs文件里,要改成protected,不要用private
------解决方案--------------------
每次都要初始化这些控件,要不然点击postback回来,这些控件没有创建,就不会执行事件处理函数