四保存及显示
·下一个方法是SaveViewState不论是否是回传页面均会递归的执行以保存页面及其所有控件的ViewStateViewState基本上保存所有与定义在aspx中的原始值不同的值不管是被代码还是用户所改变注意控件值是根据他们在页面的控件树中的位置来保存的所以如果动态控件后来加到了错误的位置将会导致混乱
·下一个方法是SavePageStateToPersistenceMedium真正的保存页面的ViewSate这个方法随同LoadPageStateFromPersistenceMediumg 一起被重写以便保存ViewState到Session或其它自定义数据而不是用隐藏域这对于低带宽的用户来说是很有帮助的并且对于移动设备来说Session是默认设置下面这篇文章描述了使用以上两种方式保存ViewState的具体细节注意在Aspnet中有个BugAspnet要求必须提交__viewstate字段即使是空的
·下一个方法是Render方法该方法递归的创建并发送相应控件的html给浏览器这个方法被一些页面模板方案重写以添加一些通用的页面头与脚而不使用服务器控件他们总是有一些额外的东西注意这儿的修改只能使用纯HTML因为控件在这儿已经被生成了您可以用StringBuilderStringWriterHtmlTextWriter捕获相应的HTML输出
· 最后的方法是OnUnload这个方法会调用相应的Dispose方法这个方法提供机会以便清空该页面中使用的非托管资源如关闭打开的文件句柄以前打开的数据库连接等注意这个方法是在页面已经发送到客户端以后执行的所以它只有影响服务器对象并且它不会显示在页面的显示轨迹中这就是页面的生存期对于每一次请求都是这么运行的
表页面事件总结
方法回传控件
ConstructorAlwaysAll
AddParsedSubObjectAlwaysAll
DeterminePostBackModeAlwaysPage
OnInitAlwaysAll
LoadPageStateFromPersistenceMediumPostBackPage
LoadViewStatePostBackAll
ProcessPostDataPostBackPage
OnLoadAlwaysAll
ProcessPostDataPostBackPage
RaiseChangedEventsPostBackPage
RaisePostBackEventPostBackPage
OnPreRenderAlwaysAll
SaveViewStateAlwaysAll
SavePageStateToPersistenceMediumAlwaysPage
RenderAlwaysAll
OnUnloadAlwaysAll
[] []