关于asp.net web form 控件事件的疑问?

sinat_29750929 2015-07-26 09:26:33
我在一个web form页面form1里面,在Page_Load里面动态地添加了一个按钮Button1,添加Button1的数据需要查询数据库,然后再为其添加OnClick事件。
当用户从页面点击了这个按钮,按我的理解,服务器处理的顺序应该是,先执行Page_Load,那么这里面又会再查询一个数据库,然后生成Button1。当Page_Load的代码都执行完毕后,再去处理Button1的OnClick事件。感觉这样好像执行了多余一次的操作(包括查询数据库和生成Button1的动作),但如果跳过了生成Button1的代码,那么根本不会响应OnClick事件。
我的问题是:有没有办法只执行一次生成Button1,然后可以响应OnClick事件?
这里先谢谢各位帮忙的朋友!
...全文
118 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajianchina 2015-07-27
  • 打赏
  • 举报
回复
引用 3 楼 sinat_29750929 的回复:
再问一下,如果动态生成的是Textbox,那当页面postback回来时候,我不重新创建一次这个textbox,那我如何获得里面的Text呢?
搞明白是个好习惯 你动态生成的Textbox控件也是需要放在(!IsPostBack)里面,否则你post后又将重新执行生成Textbox的过程,你是需要取得提交前的那个Textbox里的text值。 你在生成Textbox控件的时候,为该控件指明id,提交后通过Request.Form["id"]取值就行了
sinat_29750929 2015-07-27
  • 打赏
  • 举报
回复
实现当然有很多其他办法,我只是想搞清楚webform的处理机制。
还想懒够 2015-07-27
  • 打赏
  • 举报
回复
为何不先放在页面里面,直接使用style=display:none进行控制呢?
sinat_29750929 2015-07-27
  • 打赏
  • 举报
回复
再问一下,如果动态生成的是Textbox,那当页面postback回来时候,我不重新创建一次这个textbox,那我如何获得里面的Text呢?
Justin-Liu 2015-07-27
  • 打赏
  • 举报
回复
if(!IsPostBack)
ajianchina 2015-07-26
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { //button动态生成放这里 } }

62,041

社区成员

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

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

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

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