2009-06-30 53 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集合中。你没有做任何事情。