zoukankan      html  css  js  c++  java
  • 页面生命周期`

    1、创建页面控件树(FrameworkInitialize()——>BuildControlTree(this)):
    将所有的控件实例化(即new),然后把层级(父子body里面有form,form里面有panel,
    panel里面有button)关系设置好,从Page类开始先创建声明、
    创建头部、创建body、创建form1:所有子控件,所有子子控件
    页面里面如果有C#代码,编译成方法

    2、确定IsPostback属性

    3、初始化阶段:PreInitInitinitComplete
    初始化ID值
    将所有控件的Page属性指向当前页面类

    4、如果回发
    加载ViewState,从表单中获得隐藏域Viewstate的内容,把它反解密出来,把viewstate数据放到控件上去,如果是ListView这些复杂控件,那么自动将数据放到页面控件树上去(将listView的数据放到页面的隐藏域中)

    处理回发数据(ProcessPostData):将表单中基本数据,放到控件上去
    (如文本框 因为文本框属于表单标签,直接通过表单提交到后台)
    把数据进行对比,哪些控件改变了,就把此控件放到一个集合里去,
    或看那些控件被点击,就把被点击的控件放到一个集合里去

    5、加载Page_Load:PreLoad 就是一个时间点,一个标志
    Load:开发人员可以介入的点
    第二次处理回发数据:主要是为了给在PageLoad里面自己创建的控件事件触发放到集合里去
    加载完成:LoadComplete

    6、触发改变事件(RaiseChangedEvents):就遍历上面步骤集合让集合中所有控件的事件依次执行(因为4步骤中把所有控件的改变放到了一个集合中)
    触发回发事件(页面上多个按钮,你是点击那个按钮呢?后台通过你点击按钮的name属性进行区分)

    7、PreRender预渲染:最后一次操作页面的方式(渲染:把服务器端控件转换成html标签的过程)
    8、保存页面状态:将当前的页面上所有控件的数据放到隐藏域中,说白了就照张遗像
    9、渲染:将服务器端控件转换为html标签的过程
    10、卸载:将Page类页面所有对象释放,将html标签交给HttpContext对象,然后依次执行管道中下面的步骤

  • 相关阅读:
    iOS学习笔记35 社交分享
    iOS学习笔记35 社交分享
    iOS学习笔记08 Quartz2D绘图
    iOS学习笔记08 Quartz2D绘图
    iOS学习笔记08 Quartz2D绘图
    iOS学习笔记08 Quartz2D绘图
    iOS学习笔记14 网络(三)WebView
    iOS学习笔记14 网络(三)WebView
    iOS学习笔记14 网络(三)WebView
    Oracle使用dblink连接SqlServer
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7800003.html
Copyright © 2011-2022 走看看