一、进入服务器控件以及aspx页面前,必须的准备:

a)在WebForm 中只要带有runat="server" 那么那就是一个控件。
b)如果form有runat="server"那么将来form的提交方式是post
c)所有的asp:Button将来在编译之后都会成submit按钮
d)页面如果没有指定提交的路径,那么默认情况下会自动生成Action属性,属性的值就是当前页面
e)回发请求:默认是post请求,请求的必须是当前页面,前且必须要是服务器控件
f)IsPostBack: 判断是第一次请求(false)还是回发请求(true)。
g)__VIEWSTATE:表单的隐藏域(只有在回发请求才会提交)。

二、当前台aspx页面使用服务器控件开发时:

a)浏览器第一次请求服务器时,

1,当浏览器第一次请求服务器时,在管道事件的第八个事件中创建被请求页面的对象。

2,在第十一,十二个事件中执行的页面生命周期,并执行了方法_BuilderControTree(),
内部就是将整个页面控件树的结构创建好,再继续执行页面生命周期,执行Page_Load() 方法,

并将 前台页面控件的数据以及后台页面Paga_Load()动态绑定的数据,保存当前的页面状态到 ViewState中。

3,根据上下文对象中的Repsonse属性生成响应报文字符串发回给浏览器。

b)当浏览器第二次请求服务器时,

1, 在管道事件的第八个事件中创建被请求页面的对象。

2, 第二次请求服务器时,因为是回传事件,所以除了创建页面控件树的结构,还要解析隐藏域中的
__VIEWSTATE数据, 执行ProcessPostData事件,将 __VIEWSTATE数据赋值到控件上去。

3,继续执行页面生命周期,执行Page_Load() 方法

4,再次执行ProcessPostData事件,将要触发改变事件的控件在一次放到集合中去。

5,保存当前页面控件的状态到__VIEWSTATE中。

总结: 可以看到当浏览器第二次请求页面时(回发请求),与第一次主要的不同是在页面生命周期的一些对象中的一些事件执行的不同,

比如(ProcessPostData事件)。

这样一来前台页面上就可以通过__VIEWSTATE 来一直保持数据,就算点击了提交,
服务器控件上的数据也不会消失(有点像Winfrom的开发)。

最后补上一幅管道事件与页面生命周期的图:

aspx页面与服务器控件间运行原理的更多相关文章

  1. ASP.NT运行原理和页面生命周期详解及其应用

    ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用.  ...

  2. ASP.NET的运行原理与运行机制 如何:为 IIS 7.0 配置 <system.webServer> 节

    https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的 ...

  3. Asp.Net应用运行原理

    一.运行原理图 二.对于HttpModule和HttpHandler的概念可能还不是很清楚,请先看Asp.Net应用生命周期.RAR 或者 Asp.Net深入解析 第四章,流程图太大无法粘贴 三.传智 ...

  4. ASP.NET运行原理_2

    当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...

  5. Aspx 页面生命周期

    ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行 呈现.了解页的生命周期非常重要,这样就 ...

  6. struts1,struts2,hibernate,spring的运行原理结构图

    一.struts1运行原理 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(s ...

  7. iBatis.Net的基本情况和运行原理

    转载http://www.cnblogs.com/13590/archive/2013/02/27/2934580.html 摘要:介绍iBatis.Net的基本情况和运行原理,运行环境中各参数的配置 ...

  8. asp.net运行原理及机制

    当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...

  9. iis6.0与asp.net的运行原理

    这几天上网翻阅了不少前辈们的关于iis和asp.net运行原理的博客,学的有点零零散散,花了好长时间做了一个小结(虽然文字不多,但也花了不少时间呢),鄙人不才,难免有理解不道的地方,还望前辈们不吝赐教 ...

随机推荐

  1. EXPDP

    源地址:http://blog.csdn.net/zftang/article/details/6387325

  2. C++学习31 重载=(赋值运算符)

    和普通变量一样,对象之间也可以相互赋值.赋值运算符“=”可以用来将一个对象拷贝给另一个已经存在的对象.对象之间的赋值是将成员变量依次拷贝,而不是将整个对象的内存按位拷贝. 对象之间的赋值: #incl ...

  3. [ActionScript 3.0] AS3.0 给flash事件传递参数的方法

    有时我们想要给flash内置的事件(比如MouseEvent)传递参数,这时我们可以用到下面的方法. import flash.events.MouseEvent; mc.addEventListen ...

  4. 常用命令之ps

    ps : process status ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的:如果想对进程时间监控,应该用 top 工具. kill 命令用于杀死进程. linux上 ...

  5. editplus格式化xml文档

    使用editplus打开xml文档,发现文件内容没有格式化,非常难看,使用IE9打开这个xml文档是格式化的,但是IE9打开不能编辑. 在网上找了一些资料发现能够通过一个小插件来是editplus格式 ...

  6. [原]iptables的NAT策略

    #*nat #:PREROUTING ACCEPT [:] #:POSTROUTING ACCEPT [:] #:OUTPUT ACCEPT [:] # #-A PREROUTING –s IP1 - ...

  7. XMLHttpRequest的五步使用方法

    <html> <head> <title>Demo</title> <style> body,input,button,select,h1{ ...

  8. JQuery基础教程:入门

    JQuery能做什么 JQuery在线手册 1.取得文档中的元素 如果不使用JavaScript库,遍历DOM(Document Object Model,文档对象模型)树,以及查找HTML文档结构中 ...

  9. java——操作文件

    Java文件操作,共实现了文件复制(单个文件和多层目录文件),文件移动(单个文件和多层目录文件),文件删除(单个文件和多层目录文件),文件压缩 (单个文件),文件解压(单个文件),文件分割(将一个大文 ...

  10. 《Code Complete》ch.11 变量名的力量

    What? 如何给变量命名 Why? 易读(你三个月前的代码=别人的代码),易记,恰如其分 整齐的命名具有美感,强迫症患者居家旅行杀人放火之必备 How? 以问题为导向 好名字反映的是问题(what) ...