asp Click事件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:12:01
我动态添加了linkButton,还加了事件,页面第一次运行,只需要点一次linkButton就能调用事件,后面就要点击两次才能调用事件.怎么回事?
代码如下(这是一个分页显示数据的例子):
protected void Page_Load(object sender, EventArgs e)
{
loadTable();
}
private void loadTable()
{
Panel1.Controls.Clear();
……//显示的数据
LinkButton next = new LinkButton();
next.Text = "下一页";
next.Command+=new CommandEventHandler(this.nextPage);
Panel1.Controls.Add(next);
}
public void nextPage(object sender, EventArgs e)
{
loadTable();
}

为了可以在页面回传时准确无误找到点击事件的控件,应该要给动态生成的控件一个ID:
LinkButton next = new LinkButton();
next.Text = "下一页";
next.ID = "lnkBtn";
next.Command+=new CommandEventHandler(this.nextPage);

这样的话,就能够正确调用触发控件了。

动态生成的控件在页面回刷时就消失了,服务器端不会记住已经生成了哪些控件,除非你再生成一遍。

nextPage里的loadTable()覆盖了Page_Load里的loadTable()的执行结果