动态生成button按钮问题

a2824cl 2007-10-23 11:52:30
我在Page_Load中添加了一个Button按钮,但点击按钮后,没有触发bt_Click事件,我编译的时候加了断点,bt_Click事件确实没有运行,为什么呢?请高人指点!

protected void Page_Load(object sender, EventArgs e)
{
Button bt = new Button();
bt.Text = "back";
bt.Click += new EventHandler(bt_Click);
pan1.Controls.Add(bt);
}

public void bt_Click(object sender, EventArgs e)
{
............
}
...全文
273 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
a2824cl 2007-10-27
  • 打赏
  • 举报
回复
找到问题了,9楼的建议正确,是动态生成控件的生存周期问题。
我贴代码时,没把判断条件贴上。我自己的代码上是根据参数传递判断,再动态生成控件的。当点击控件时,控件在回发时就没了,看来需要把控件的信息想办法储存一下,或者再生成一遍才行。
是我的错,提问题时,没把问题描述完全,感谢大家的热情回答!
sun0201 2007-10-27
  • 打赏
  • 举报
回复
111111111111111
ShowWin 2007-10-27
  • 打赏
  • 举报
回复
首先抱歉,没看考虑清楚乱答一通
直接拷贝楼主的代码测试..运行没问题...

		protected void Page_Load(object sender, EventArgs e) 
{
Button bt = new Button();
bt.Text = "back";
bt.Click += new EventHandler(bt_Click);
Panel1.Controls.Add(bt);
}

public void bt_Click(object sender, EventArgs e)
{
Response.Write("OK");
}
ie_young 2007-10-27
  • 打赏
  • 举报
回复
前面那些人给你的都有答案了

看看你写的,仔细对照下撒 bt.Click += new EventHandler(bt_Click);
mybtn.Click += new System.EventHandler (this.btn1_Click );
a2824cl 2007-10-26
  • 打赏
  • 举报
回复
我此页有2个按钮,1个静态的,1个动态生成的,那个静态的按钮可以触发相应事件,但动态的还是不行,大家帮忙呀!

前台代码是
<asp:Button ID="Button1" runat="server" Text="Create Test Control" OnClick="Button1_Click" />
<asp:Panel ID="pan1" runat="server"></asp:Panel>

后台代码是
protected void Page_Load(object sender, EventArgs e)
{
Button bt = new Button();
bt.ID="button_back";
bt.Text = "back";
bt.Click += new EventHandler(bt_Click);
pan1.Controls.Add(bt);
}

public void bt_Click(object sender, EventArgs e)
{
............
}

protected void Button1_Click(object sender, EventArgs e)
{
.....
}
ie_young 2007-10-26
  • 打赏
  • 举报
回复
if(!IsPostBack)
{
Button bt = new Button();
bt.Text = "back";
bt.Click += new EventHandler(bt_Click);
pan1.Controls.Add(bt);
}
放到这里面 不可以的吧

动态生成的控件 ,有的生存周期

在初始化里面写的话

回发时就没了,响应不了
ShowWin 2007-10-26
  • 打赏
  • 举报
回复
判断回传

 protected void Page_Load(object sender, EventArgs e) 
{
if(!IsPostBack)
{
Button bt = new Button();
bt.Text = "back";
bt.Click += new EventHandler(bt_Click);
pan1.Controls.Add(bt);
}
}

public void bt_Click(object sender, EventArgs e)
{
............
}
ie_young 2007-10-26
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{ Button mybtn=new Button();
mybtn.Text="提 交";
mybtn.ID="mybtn1";
mybtn.Click += new System.EventHandler (this.btn1_Click );
c.Controls.Add(mybtn);
r.Cells.Add(c);

}
private void btn1_Click( object sender , System.EventArgs e )
{
.....代码
}

5楼给的绝对可以实现你的,你仔细看看你写的吧

跟踪下
a2824cl 2007-10-26
  • 打赏
  • 举报
回复
对不起大家,今天才能上论坛看帖子。按照大家的建议作了,加了ID, 但还是无法触发事件,还有没有其他方法呢?
honey52570 2007-10-24
  • 打赏
  • 举报
回复
Page.Controls.Add(bt);
ETstudio 2007-10-24
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
Button btnNew = new Button();
btnNew.Text = "black";

btnNew.Click += new EventHandler(btnNew_Click);
this.form1 .Controls.Add(btnNew);
}

void btnNew_Click(object sender, EventArgs e)
{
int i = 1;
}
指间的风 2007-10-24
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
Button btn1 = new Button();
btn1.ID = "btn";
btn1.Text = "点击";
btn1.Click += new EventHandler(btn1_Click);
form1.Controls.Add(btn1);
}
protected void btn1_Click(object sender, EventArgs e)
{

}
yuan74521940 2007-10-24
  • 打赏
  • 举报
回复
Button btn = new Button();
btn.ID = "Button2";
btn.Text = "Button2";
btn.Click += new EventHandler(Button_Click);
-----------------
这样就可以....
xray2005 2007-10-24
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
Button bt = new Button();
bt.ID="btn1"; //加个ID试试
bt.Text = "back";
bt.Click += new EventHandler(bt_Click);
pan1.Controls.Add(bt);
}

public void bt_Click(object sender, EventArgs e)
{
............
}

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧