ASP.NET Page函数调用顺序解析

一.初始化部分:
1.构造函数:创建page类的一个实例,初始化page类的属性.
2.AddParsedSubObject函数:
protected virture void AddParsedSubObject(Object obj)
提取aspx文件中的服务器控件,并把它们添加到page的ControlCollection中.你可以通过Page.Controls获得加载的所有服务器控件
3.DeterminePostBackMode函数:
protected internal virtual NameValueCollection DeterminePostBackMode ()
返回:NameValueCollection包含了用户通过get或post方式发送过来的数据,如果是第一次请求将返回空.VIEWSTATE 和 EVENTTARGET这两个隐藏的表单字段将帮助我们来判断是否是第一次请求. 在调用这个事件后ispostback的将会被设置.
4.OnInit函数:
protected internal override void OnInit (EventArgs e)
调用init事件,初始化page中的所有控件为它们的默认值(你在aspx页面中设置的值,viewstate中值这时并不会被设置到控件上)
二.非第一次请求的进一不初始化:
1.LoadPageStateFromPersistenceMedium函数:
protected internal virtual Object LoadPageStateFromPersistenceMedium ()
装载viewstate信息到page对象中(这时并没有把获得的值设置给相应的控件)
2.LoadViewState函数:
protected virtual void LoadViewState (Object savedState)
为控件重新建立viewstate信息
3.ProcessPostData函数:
一个私有方法,无法访问
获取用户输入的数据,并把它们对应到相应控件的属性上

//至此页面中的所用控件的属性都被装载了,下面该相应你的事件了
三.事件处理部分
1.OnLoad:
protected internal virtual void OnLoad (EventArgs e)
调用page_load方法为指定页面信息,如执行数据库查询,指定本地变量属性.(也就是我们常写的那个Page_load事件)

四.非第一次请求需要执行的函数用以调用你你编写的各个事件:
1.ProcessPostData:再次调用ProcessPostData函数主要是处理在Page_Load事件中动态创建的控件的数据信息
2.RaiseChangedEvents:响应控件属性改变事件
3.RaisePostBackEvent:响应按钮的提交事件

五.处理OnPreRender事件:
在页面传给浏览器之前,修改控件属性的最后机会

六.至此页面的内容就不可能被修改了,下面该为下一次用户的postback准备条件和生成相应的html文件了
1.SaveViewState:由于事件中可能改变了服务器控件中的属性,因此我们需要更改的信息到viewstate中
2.SavePageStateToPersistenceMedium:为页面保存viewstate状态信息,也就是将上面获得的viewstat对象保存到隐藏字段或session中
3.Render:创建html文件并把它发送到浏览器
4.Unload:释放相应的资源,如数据库连接,文件句柄等

(0)

相关推荐

  • ASP.NET Page函数调用顺序解析

    一.初始化部分: 1.构造函数:创建page类的一个实例,初始化page类的属性. 2.AddParsedSubObject函数: protected virture void AddParsedSubObject(Object obj) 提取aspx文件中的服务器控件,并把它们添加到page的ControlCollection中.你可以通过Page.Controls获得加载的所有服务器控件 3.DeterminePostBackMode函数: protected internal virtua

  • asp防止上传图片木马原理解析

    首先判断文件大小: if file.filesize<10 then Response.Write("<script>alert('您没有选择上传文件')</script>") Response.Write("<script>history.go(-1)</script>") Response.End() end if 将文件上传到服务器后,判断用户文件中的危险操作字符: set MyFile = server.

  • Java自定义函数调用方法解析

    这篇文章主要介绍了java自定义函数调用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一:主类中自定义函数 在主类中,如果想要在main函数中调用自定义的其他方法,则这个函数需要使用static关键字定义,否则会报错Cannot make a static reference to the non-static method xx from the type xx,调用的时候直接用函数名就可以了,如下: public class cr

  • springboot配置文件的加载顺序解析

    这篇文章主要介绍了springboot配置文件的加载顺序解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 springboot启动时会扫描一下位置的application.properties或者application.yml文件作为默认配置文件: file:./config/ file:./ classpath:/config/ classpath:/ 以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置会覆盖低优先级配置

  • Vue2 模版指令元素绑定事件执行顺序解析

    目录 Vue 自定义指令的执行机制 前情提要 DOM绑定 源码 directive 为什么先调用模版绑定的方法,再调用指令的方法 总结 Vue 自定义指令的执行机制 version: 2.6.14 前情提要 某日,业务需要我需要在按钮点击之前验证某些条件,如果不符合即不执行click内的业务代码.思前想后,写一个指令不就可以了.做到既不改动原有的业务代码,又可以移植. <template> <button v-capture @click="handleClick"&

  • ASP.NET MVC使用RazorEngine解析模板生成静态页

    简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目. 我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过多解释,通过路由或Url

  • ASP脚本的执行顺序详细说明

    首先我们先来了解一下ASP页面执行的流程 1.IIS找到ASP文件,提交给ASP引擎(一般是ASP.DLL)处理. 2.引擎打开这个ASP文件,找出<%和%>之间的内容,当然还有<script runAt="server">和对应的</script>之间的内容,这些内容称为脚本块.只有脚本块里的内容被引擎解析,其他内容不管,作为没有意义的字符插在脚本块之间.有必要说明一下的是,其实被解析的内容还不止这些,<!--#include ***--&g

  • .NET/ASP.NET Routing路由(深入解析路由系统架构原理)

    1]开篇介绍 这篇文章让我们愉快的学习一下ASP.NET中核心的对象模型Routing模块,为什么说愉快呢,因为Routing正是建立在大家都比较熟悉的ASP.NET管道模型基础之上的,所以相比其他一些陌生的概念会轻松很多,不过不要紧一回生二回熟: ASP.NET Routing 系统是一切通过ASP.NET进行Uri访问应用程序的基础(并非物理文件的直接映射):随着Routing的出现,我们的WEB设计已经和以前大不一样:越来越轻量级.简单化,都通过简便的Uri资源的方式进行处理,将精力放在业

  • asp对复杂json的解析一定要注意要点

    这是本人写的第一篇文章,其实网上有很多类似的文章,我刚开始也是照着网上的文章来做的实验. 但是他的文章中的json还是挺简单的,我按照他的方法只解析出第一层,后面的死活试了大半天才测试出来,这里还是对json格式的数据不是太熟悉,也是对asp不熟悉.下面贴上我的代码,解释一下,也算对我做的东西留个备份. 我的json数据,是从http接口中得到的: 复制代码 代码如下: {"data":{"0":{"Productinfo":{"id&

  • asp.net Page.EnableEventValidation 属性验证服务器控件的回发和回调事件出现的错误

    本以为页面很简单不会出现问题,但运行时出现了如下错误: Page.EnableEventValidation 属性 参看了一下MSDN,获取或设置一个值,该值指示页面验证回发事件,还是验证回调事件..NET Framework出于安全考虑需要为服务器端控件的回发和回调事件进行注册,此事件验证机制可消除未经授权的回发请求和回调带来的风险.通过此模型,控件可在呈现期间注册其事件,然后在回发或回调期间验证这些事件.默认情况下,ASP.NET 中的所有事件驱动控件均使用此功能. 第一反应,既然启用了事件

随机推荐