页面的生命周期

页面pr方法内部处理过程:
第一步:创建页面控件树,根据 Form里面的请求内容(ViewState)确定是否是IsPostBack
第二步:页面初始化之前
  this.PerformPreInit();
  private void PerformPreInit()
  {
    this.OnPreInit(EventArgs.Empty);//一般在这里面设置主题,加载模板由
    this.InitializeThemes();//初始化主题,如果已经设置主题直接退出,如果没有设置根据配置来。
    this.ApplyMasterPage();//设置模板页,如果模板页已经存在(如在OnInit代码里面设置了新的模板页就不走原来的了)就结束
    this._preInitWorkComplete = true;
  }
第三步:
  OnInit()执行
  this.OnInitComplete(EventArgs.Empty);//初始化结束;
第四步:处理回发数据
  if(IsPostBack)
  {
    this.LoadAllState();//加载所有的ViewSate:Page以及控件的

    this.ProcessPostData(this._requestValueCollection, true);//处理回发数据,就是看一下哪些控件变化了,然后调用下面的方法

    this.RegisterRequiresRaiseEvent(control.PostBackEventHandler);//注册要触发事件的控件
  }
第五步:
  this.OnPreLoad(EventArgs.Empty);//调用加载的事件

第六步:
  Onload()
  this.LoadRecursive();//递归加载,把所有控件里面的Load事件触发了

第七步:
  if(IsPostBack)

  {
    this.ProcessPostData(this._leftoverPostData, false);//再处理一下ViewState数据

    this.RaiseChangedEvents();//调用一些需要ViewState参与才能感知 事件的方法执行

    this.RaisePostBackEvent(this._requestValueCollection);//调用 按钮的click事件处理
  }

第八步:
  this.OnLoadComplete(EventArgs.Empty);加载完。
第十步:
    this.PrepareCallback(callbackControlID);//为 IsPostback设置标志
    this.PreRenderRecursiveInternal();//加载html,渲染服务器端控件之前,允许你最后一次改变当前控件东西

    this.SaveAllState();//保存ViewState

    this.OnSaveStateComplete(EventArgs.Empty);//保存完成
    this.RenderControl(this.CreateHtmlTextWriter(this.Response.Output));//把服务器控件转变成浏览器能识别的Html代码
    this._context.ApplicationInstance.CompleteRequest();

//最后生成响应报文返回给浏览器。

转载于:https://www.cnblogs.com/-ljj/archive/2013/02/17/2913854.html

.Net_asp.net页面的生命周期相关推荐

  1. 【微信小程序企业级开发教程】页面的生命周期和参数传递

    文章目录 1 页面的生命周期 2 参数传递 2.1 第一种method 2.2 第二种method 1 页面的生命周期 2 参数传递 2.1 第一种method 第一个界面代码: 要跳转界面的代码: ...

  2. Asp.net2.0页面的生命周期(续)

    以上就是Asp.net页面生命周期中的几个主要事件.每次我们请求一个Asp.net页面时,我们都经历着同样的过程:从初始化对象到销毁对象.通过了解Asp.net页面的内部运行机制,我相信大家在编写.调 ...

  3. 【转】Asp.net页面的生命周期

    介绍 Asp.net是微软.Net战略的一个组成部分.它相对以前的Asp有了很大的发展,引入了许多的新机制.本文就Asp.net页面的生命周期向大家做一个初步的介绍,以期能起到指导大家更好.更灵活地操 ...

  4. .Net页面的生命周期(ZZ)

    1.        初始化:主要是执行Page的Init事件和OnIint方法. 2.        加载视图状态:主要是执行LoadViewState方法,就是从ViewState中获取上一次的状态 ...

  5. WEB页面的生命周期,DOMContentLoaded,load,beforeunload,unload

    简言 理解WEB页面的生命周期,文档加载事件及顺序对WEB开发有十分的重要意义.如果不理解,在元素未加载就提前操作元素,则得不到想要的结果.而如果页面完全加载完成后,再进行操作,则又会影响用户体验. ...

  6. ZT Web Control 开发系列(一) 页面的生命周期

    http://www.cnblogs.com/joeliu/category/143125.html Page是WebForm编程基本元素,它从TemplateControl派生,而TemplateC ...

  7. Asp.net2.0页面的生命周期

    当一个获取网页的请求(可能是通过用户提 交完成的,也可能是通过超链接完成的)被发送到Web服务器后,这个页面就会接着运行从创建到处理完成的一系列事件.在我们试图建立Asp.net页面的 时候,这个执行 ...

  8. HTML 页面的生命周期、HTML 事件

    From:https://blog.csdn.net/WuLex/article/details/101016936 1.页面生命周期 HTML页面的生命周期有以下三个重要事件,每个事件都有特定的用途 ...

  9. 微信小程序详解——小程序的生命周期和页面的生命周期

    我是一名安卓程序员,我们安卓中最明显的特征就是类具有生命周期.所以当开发小程序的时候,我自然而然的会先研究小程序的生命周期.在Android中是通过Application来管理安卓程序的生命周期,小程 ...

  10. uni-app 页面组件生命周期

    不论是app还是小程序,生命周期是非常重要的知识点. uni-app 支持如下生命周期函数: 页面的生命周期 onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为object(用于页面传 ...

最新文章

  1. 英伟达颠覆CPU!Arm架构专为AI而生,性能超x86十倍
  2. access转换成oracle,Access转Oracle工具
  3. linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录
  4. 【Vegas原创】mysql更改用户密码之无敌方法
  5. em算法怎么对应原有分类_[PRML]序列数据 HMM维特比算法及扩展
  6. 跟一个大佬前辈交流了一下
  7. 软件界面是怎么做出来的_电脑时间管理软件,每天要做的事情会有对话框跳出来提醒的便签软件...
  8. Hibernate SQL方言
  9. csv导入sqlite(python)
  10. 坐火车卧铺,到底是上、中、下哪个好?其实简单对比一下就知道了
  11. 历时3个月终克2.1大礼包
  12. 如何在S函数中对变量或者输入信号进行求导
  13. ue4水墨材质_PS使用水墨烟雾笔刷临摹一匹水墨烟雾骏马_资源库
  14. 用批处理文件阻止win10强制更新
  15. 数据库原理与应用第三版何玉洁第二章课后题答案
  16. AppIcon 生成工具
  17. bixby怎么编程_三星的Bixby可以做什么?
  18. spark日志中 Tid是什么
  19. Java8 默认垃圾回收器(GC)
  20. AD936x 系列快速入口

热门文章

  1. Dubbo不向zookeeper/nacos注册
  2. Java I/O系统之Object流
  3. 开启MyBatis(三)工作原理
  4. 【渝粤教育】国家开放大学2018年春季 0161-22T教师职业道德 参考试题
  5. 【渝粤教育】广东开放大学 学前儿童保育学 形成性考核 (40)
  6. Qt 学习之路 2(3):Hello, world! 笔记
  7. Jmeter逻辑控制器操作,附栗子
  8. c语言名著摘抄——语法及实例
  9. subprocess模块(了解)
  10. jQuery双击编辑td数据