aspx页面与服务器控件间运行原理
一、进入服务器控件以及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页面与服务器控件间运行原理的更多相关文章
- ASP.NT运行原理和页面生命周期详解及其应用
ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用. ...
- ASP.NET的运行原理与运行机制 如何:为 IIS 7.0 配置 <system.webServer> 节
https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx 当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的 ...
- Asp.Net应用运行原理
一.运行原理图 二.对于HttpModule和HttpHandler的概念可能还不是很清楚,请先看Asp.Net应用生命周期.RAR 或者 Asp.Net深入解析 第四章,流程图太大无法粘贴 三.传智 ...
- ASP.NET运行原理_2
当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...
- Aspx 页面生命周期
ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行 呈现.了解页的生命周期非常重要,这样就 ...
- struts1,struts2,hibernate,spring的运行原理结构图
一.struts1运行原理 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(s ...
- iBatis.Net的基本情况和运行原理
转载http://www.cnblogs.com/13590/archive/2013/02/27/2934580.html 摘要:介绍iBatis.Net的基本情况和运行原理,运行环境中各参数的配置 ...
- asp.net运行原理及机制
当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...
- iis6.0与asp.net的运行原理
这几天上网翻阅了不少前辈们的关于iis和asp.net运行原理的博客,学的有点零零散散,花了好长时间做了一个小结(虽然文字不多,但也花了不少时间呢),鄙人不才,难免有理解不道的地方,还望前辈们不吝赐教 ...
随机推荐
- 官网下载jdk
http://www.oracle.com/technetwork/java/javase/downloads/index.html 第一步: 第二步:默认是显示最新版本的,如果需要其他版本的,拖到最 ...
- js替换字符串中全部“-”
alert("2014-03-22".replace('-','')); alert("2014-03-22".replace(/-/g,'')); 第一个运行 ...
- sqlite 时间排序
select * from tb_QuantifyResult where iSamplingOrCalibration = 1 and cComponentName <> ' + Quo ...
- (medium)LeetCode 240.Search a 2D Matrix II
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- var obj = {};var obj2 = [];var obj3;
<script> var obj = {}; console.log(obj); var obj2 = []; console.log(obj2); var obj3; console.l ...
- 菜鸟-手把手教你把Acegi应用到实际项目中(7)-缓存用户信息
首先讲讲EhCache.在默认情况下,即在用户未提供自身配置文件ehcache.xml或ehcache-failsafe.xml时,EhCache会依据其自身Jar存档包含的ehcache-fails ...
- 01-CALayer的基本操作
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Atom 编辑器插件:amWiki 轻文库
amWiki 是一款基于 Javascript 脚本语言.依赖 Atom 编辑器.使用 Markdown 标记语法的轻量级开源 wiki 文库系统. amWiki 致力于让大家可以更简单.更便捷的建设 ...
- 【翻译习作】 Windows Workflow Foundation程序开发-第一章02
1.2 Windows Workflow概览 微软的Windows Workflow Foundation(简称WF)是.NET框架3.0版的一部分..NET3.0其它主要部分是Window ...
- openerp权限设置总结
Openerp权限设置 最近一直在弄openerp权限问题,现在终于懂了一些.主要对模块下的security 目录下的文件:xxx_security.xml.ir.model.access.csv进行 ...