我是在页面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!