如何在EventHandler中创建EventHandler

时间:2009-06-30 01:04:57

标签: asp.net event-handling

我有一些代码涉及在用户点击特定按钮时动态创建新按钮。但是,当我单击其中任何一个按钮时,为这些动态创建的按钮定义的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()。我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

尝试将LinkBut​​ton btn2声明为全局变量,并在创建控件时连接事件btn2.Click + = new EventHandler(this.btn2_Click)。

答案 1 :(得分:0)

离开btn1事件处理程序后,

btn2消失。它是一个局部变量,一旦超出范围就会消失。

你见过第二个按钮吗?你点击了吗?如果是这样,那么你点击了错误的按钮。你添加的这个从未出现在你的页面上。

为了使控件可见(并呈现为HTML),它必须放在可见控件的Controls集合中。你没有做任何事情。