.net .用户控件和页面的加载顺序、生命周期

我是在页面Page_Load 的时候,对用户控件进行赋值,然后用户控件再在Page_Load 对链接进行更新,结果造成了,链接一直无法正常更新,通过单步调试2个Page_Load事件,也马上找到了问题所在,原来用户控件的Page_Load 先于 控件所在页面的Page_Load 执行,所以就造成了无法对用户控件进行有效赋值。

  解决办法:把用户控件里的赋值代码写到Page_PreRender 里,问题解决。

  PS:以前在VS2003的时候,都会在“属性”-“事件”里找到很多Page_PreRender 、Page_Load、Page_Init事件,VS05 08貌似就只有Page_Load,其实只要复制Page_Load方法体的代码,把Page_Load换成对应的事件即可

Page_Load与Page_PreRender的执行顺序 

     Page_PreRender 服务器控件将要呈现给其包含的 Page 控件时发生。简单的理解为page中的控件渲染调用此事件

Page_Load 服务器控件加载到 Page 控件中时发生。加载控件时发生。

这两个执行的顺序是Load先执行,PreRender后执行。 

有用户自定义控件的加载顺序


     本页面Page_Load ->  自定义控件Page_Load  ->   本页面Page_PreRender
那么在本页面Page_Load 根本无法使用自定义控件,因为他还没有Page_Load  ,解决方案就是使用Page_PreRender!

posted @ 2011-05-31 09:19  茶海  阅读(1417)  评论(0编辑  收藏  举报