大致代码如下,为了简洁,我删除了多余的代码,参数一律简略.
当前是在一个类中,继承了WebControl.为了做一个控件.
想要的效果是,第一次在OnLoad中创建控件,是一堆.net控件,然后每个.net控件都有事件处理函数,然后触发事件后,在处理函数中创建新的控件.当前的问题是,在OnLoad中调用了this.Create(),然后创建LinkButton,绑定事件没有问题.
但是在lb_Command中去调用this.Create(),给LinkButton绑定事件就是绑不上.我怀疑是不是生命周期的问题,lb_Command执行的时候,已经不可以绑定事件了~
protected override void OnLoad(EventArgs e)
{
//post back不执行
this.Create();
base.OnLoad(e);
}private void Create()
{
this.CreateCell("1","1", null);
}private void CreateCell(string commandArgument, string text, HtmlTableRow row)
{
LinkButton lnkBN = new LinkButton();
lnkBN.Text = text;
lnkBN.CommandArgument = commandArgument;
lnkBN.Command += new CommandEventHandler(lb_Command);
this.Controls.Add(lnkBN);
}void lb_Command(object sender, CommandEventArgs e)
{
//do some thing
this.Create();
}
当前是在一个类中,继承了WebControl.为了做一个控件.
想要的效果是,第一次在OnLoad中创建控件,是一堆.net控件,然后每个.net控件都有事件处理函数,然后触发事件后,在处理函数中创建新的控件.当前的问题是,在OnLoad中调用了this.Create(),然后创建LinkButton,绑定事件没有问题.
但是在lb_Command中去调用this.Create(),给LinkButton绑定事件就是绑不上.我怀疑是不是生命周期的问题,lb_Command执行的时候,已经不可以绑定事件了~
protected override void OnLoad(EventArgs e)
{
//post back不执行
this.Create();
base.OnLoad(e);
}private void Create()
{
this.CreateCell("1","1", null);
}private void CreateCell(string commandArgument, string text, HtmlTableRow row)
{
LinkButton lnkBN = new LinkButton();
lnkBN.Text = text;
lnkBN.CommandArgument = commandArgument;
lnkBN.Command += new CommandEventHandler(lb_Command);
this.Controls.Add(lnkBN);
}void lb_Command(object sender, CommandEventArgs e)
{
//do some thing
this.Create();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货