页面生命周期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);



 初始化结束
第四步:处理回发数据

 

    this.LoadAllState();//加载所有的ViewSate:Page以及控件的

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

    this.RegisterRequiresRaiseEvent(control.PostBackEventHandler);//注册要触发事件的控件


第五步:
 

    this.OnPreLoad(EventArgs.Empty);

第六步:
       

   Onload();
   this.LoadRecursive();


第七步:
 

    this.ProcessPostData(this._leftoverPostData, false);

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

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



第八步:
 

    this.OnLoadComplete(EventArgs.Empty);


最后:

   this.PrepareCallback(callbackControlID);//为 IsPostback设置标志
   
   this.PreRenderRecursiveInternal();//渲染服务器端控件之前,允许你最后一次改变当前控件东西

   this.SaveAllState();
   this.OnSaveStateComplete(EventArgs.Empty);
   this.RenderControl(this.CreateHtmlTextWriter(this.Response.Output));

   this._context.ApplicationInstance.CompleteRequest();


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值