前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >页面和页面里的控件的事件的执行顺序。

页面和页面里的控件的事件的执行顺序。

作者头像
用户1174620
发布2018-02-08 16:18:15
9490
发布2018-02-08 16:18:15
举报

      第一次访问的时候的执行顺序:

      1、页面的Oninit事件

      2、页面的InitComplete事件

      3、页面的PreLoad事件

      4、页面的Page_Load事件

      5、页面的LoadComplete事件

6、控件里面的CreateChildControls事件

      7、页面的SaveStateComplete事件

      8、页面里的Render事件

      而当回发的时候(也就是表单提交后),事件的执行顺序就有些差别

      1、页面的Oninit事件

      2、页面的InitComplete事件

3、控件里面的CreateChildControls事件 (原来是第六位)

      4、页面的PreLoad事件

      5、页面的Page_Load事件

      6、相应各个控件的事件,比如按钮的单击事件

      7、页面的LoadComplete事件

      8、页面的SaveStateComplete事件

      9、页面里的Render事件

       这里最郁闷的就是在回发的时候,控件里面的CreateChildControls事件的前移,提前到了页面的Load事件之前。

      如果控件的属性是在aspx页面里赋值的话,那么没有什么影响,如果是在Page_Load里面给控件的属性赋值的话,那么就会遇到一个问题,就是在第一次访问的时候,程序可以正常运行,但是在回发(表单提交)的时候,就会出现未给控件属性赋值的错误。究其原因就是在回发的时候,控件里面的CreateChildControls事件的执行顺序前移造成的。

      解决方法呢,一个就是在页面的Oninit事件里面赋值,不过这个不大习惯,另一个就是在控件内部实现属性的“缓存”,一般可以采用ViewState来保存属性值,这样在回发的时候就可以从缓存里面读取信息了。但是如果遇到很敏感的数据的时候,这么做就不太好了,所以,没办法,我才做了一个保存数据而且能够设置密钥的方法。http://www.cnblogs.com/jyk/archive/2009/04/24/1442794.html

       ps:这里面写的事件并不全,只是挑了几个常用的,而且特别的几个。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009-04-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档