CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

动态生成按钮的click事件怎么不执行???

楼主conner(测试)2005-04-04 09:46:17 在 .NET技术 / ASP.NET 提问

private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Button   myBt   =   new   Button();  
  myBt.Text="单击";  
  myBt.ID   ="Button4";  
  myBt.Click   +=   new   System.EventHandler(this.dd);  
  Page.Controls[1].Controls.Add(   myBt   );  
  }  
  我把以上代码放到Page_Load可以执行,但是我是在单击Button1的时候才生成这个按钮,单击Button1动态生成的按钮则不执行dd方法。  
   
  请高手指点。  
   
  public   void   dd(object   sender,   System.EventArgs   e)  
  {  
      myDbAccess.Alert("执行",Page);  
  } 问题点数:20、回复次数:14Top

1 楼conner(测试)回复于 2005-04-04 10:12:13 得分 0

急呀!Top

2 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2005-04-04 10:22:36 得分 1

要添加一下事件:  
   
  mybt.click+=new   eventhandler(address   of   函数名字)  
   
  //添到你的button加入之后Top

3 楼conner(测试)回复于 2005-04-04 10:40:52 得分 0

哥们我上边已经加了myBt.Click   +=   new   System.EventHandler(this.dd);Top

4 楼conner(测试)回复于 2005-04-04 10:53:06 得分 0

我发现只有放到page_load里才执行。放到  
  if(!IsPostBack)  
  {  
    放到这里就不执行了!!!!    
  }  
  Top

5 楼LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)回复于 2005-04-04 11:02:48 得分 2

http://community.csdn.net/Expert/topic/3901/3901685.xml?temp=.6412012Top

6 楼conner(测试)回复于 2005-04-04 12:00:27 得分 0

???Top

7 楼conner(测试)回复于 2005-04-04 13:44:01 得分 0

???????Top

8 楼cuike519(I will be back!)回复于 2005-04-04 21:35:48 得分 10

首先我想说明该引起该问题的原因:  
  由于页面执行周期的原因,你的事件处理函数中构造的对象在dopostback之后没有被重新构造出来,这时候页面的控件树中没有这个控件(上次动态创建的),当然无法激发该控件的事件处理函数。HTML是无状态的,在重新加载页面需要重新构造上次的控件包括你动态创建的。  
   
  Page_Load和Init方法都先于事件处理程序执行,所以你只要在这两个函数中重新构造你的控件就可以激发你动态添加的控件的事件了!Top

9 楼nadoo()回复于 2005-04-04 22:00:27 得分 0

楼上的强,   我们是应该学习ASP.Net的处理机制.Top

10 楼ziffle(国际品牌运动原单:http://shop33388984.taobao.com/ 朋友网店新开,最)回复于 2005-04-04 23:48:54 得分 0

asp     是无状态连接的,你第二次请求你判断了是否是回传页,然后把代码写在了..里面,所以你并没有再创建控件并进行初始化,你的控件的事件也不可能注册成功,不可能执行了  
  Top

11 楼minghui000(沉迷网络游戏)回复于 2005-04-05 01:07:53 得分 0

upTop

12 楼s1ihome(My hometown is a beautiful village)回复于 2005-04-05 02:26:32 得分 0

学习   cuike519(marshal)Top

13 楼LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)回复于 2005-04-05 07:11:46 得分 2

在IsPostBack的时候也要生成按钮的Top

14 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2005-04-07 10:46:09 得分 5

cuike519(marshal)   说得对,这个问题是因为动态添加的控件无法保存状态引起的,换一种方法可以实现你的要求,那就是在页面上事先创建这个按钮,只是把它的Visible属性设为false,在点击前一按钮时再将它的Visible设为true,这样它的Click事件就会正常被激发。Top

相关问题

  • select的option是动态生成的,在页面执行一个按钮的回调时,option都不在了,怎样保存住动态生成的option呢?
  • 动态生成按钮的双击?
  • vb中动态生成按钮?
  • 动态生成按钮create()的问题
  • Lotus里能不能动态生成按钮,怎么生成?
  • 如何让CDialogBar上动态生成的按钮有效?
  • 动态生成位图按钮的问题,在线等待!!!
  • 动态生成的窗口中的按钮事件?
  • 动态生成按钮之后事件怎么写啊?
  • 请教动态生成按钮的方法。

关键词

  • 控件
  • 执行
  • 函数
  • 页面
  • mybt
  • 按钮
  • 事件
  • 动态
  • 构造
  • 放到

得分解答快速导航

  • 帖主:conner
  • xxuu503
  • LoveCherry
  • cuike519
  • LoveCherry
  • webdiyer

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo