ASp.NET 2.0中Page事件的执行顺序实例代码(1/2)

一.初始化部分:
1.构造函数:创建page类的一个实例,初始化page类的属性.
2.addparsedsubobject函数:

protected virture void addparsedsubobject(object obj)

提取asp教程x文件中的服务器控件,并把它们添加到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中的所有控件为它们的默认值(你在asp教程x页面中设置的值,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:释放相应的资源,如数据库教程连接,文件句柄等

page 执行中将按照如下顺序激活事件:

page.preinit
page.init
page.initcomplite
page.preload
page.load
page.loadcomplete
page.prerender
page.prerendercomplete

如果页面从令一个页面继承,如basepage:system.web.ui.page,在basepage中做了一些扩展,如权限检查,而其他页面从basepage继承,则basepage和最终page的事件激活顺序是:

ui.preinit
page.preinit
ui.init
page.init
ui.initcomplite
page.initcomplite
ui.preload
page.preload
ui.load
page.load
ui.loadcomplete
page.loadcomplete
ui.prerender
page.prerender
ui.prerendercomplete
page.prerendercomplete 

首页 1 2 末页

时间: 2024-09-28 04:57:02

ASp.NET 2.0中Page事件的执行顺序实例代码(1/2)的相关文章

Asp.net 2.0 中获取控件输出的Html代码

asp.net|控件 X将Asp.net 控件的呈现html获取,在不少场合会用到,比如生成静态页时 以下代码选自 Asp.net 2.0 高级编程   public static string RenderControlAsString(Control ctl)...{   StringWrite sw=new StringWrite();   HtmlTextWrite write=new HtmlTextWrite(sw);   ctl.RenderControl(writer);   s

ASP.NET 2.0中的事件访问修饰符?

问题描述 我有两个问题:1.比如voidSubmit_Click(Objectsender,EventArgse)默认是不是private?我用htmlinputsubmit控件调用它时,说访问受限制,无法访问.2.asp.net中事件和方法有什么区别?方法是什么,是对象还是类,如果是类,是不是抽象类? 解决方案 解决方案二:1.是private2.事件是一种特殊的委托:方法就是方法.方法是类的组成部分.解决方案三:1.默认为private.2.类里面包含方法和事件.方法是用来调用的,事件是用来

ASP.NET 2.0 中配合 Master Page 使用的优化 CSS 模型

asp.net|css|优化 ASP.NET 2.0 中增加了内建的 MasterPage 的支持,这对我们来说是一个很大的便利.然而经过一段时间的使用,我发现 MasterPage 并不是那么完美:嵌套的 MasterPage 不能支持设计时界面,以及下面要提到的Content Page 中增加 CSS 的问题. 通常,在没有 2.0 之前,我们在页面里要增加一个 CSS 引用的语法如下: <link rel="stylesheet" href="css/test.c

ASP.NET 2.0 中配合Master Page使用的优化CSS模型

asp.net|css|优化 ASP.NET 2.0 中增加了内建的 MasterPage 的支持,这对我们来说是一个很大的便利.然而经过一段时间的使用,我发现 MasterPage 并不是那么完美:嵌套的 MasterPage 不能支持设计时界面,以及下面要提到的Content Page 中增加 CSS 的问题. 通常,在没有 2.0 之前,我们在页面里要增加一个 CSS 引用的语法如下: <link rel="stylesheet" href="css/test.c

在asp.net 2.0中结合母板页使用meta标签(扩展@Page指令)

asp.net 介绍母板页是asp.net 2.0中的一个非常强大的特性,但是它却不能提供一个实现最基础的针对搜索引擎优化的方法.如果你想你的web页被搜索引擎收录并提高排名,那么你就需要在每一个页都指定一个title和meta标记.本文将说明如何扩展你的asp.net页,以使得在使用母板页的时候你可以直接在你内容页的@Page指令中指定你的meta标签的描述和meta标签的关键字 背景当你要针对搜索引擎优化你的web页的时候,设置页的title标签和页的meta描述是其中最重要的因素之一.<t

ASP.NET 2.0 中的异步页功能应用

asp.net|异步 下载本文源代码:WickedCode0510.exe ASP.NET 2.0 提供了大量新功能,其中包括声明性数据绑定和母版页,成员和角色管理服务等.但我认为最棒的功能是异步页,接下来让我告诉您其中的原因. 当 ASP.NET 接收针对页的请求时,它从线程池中提取一个线程并将请求分配给该线程.一个普通的(或同步的)页在该请求期间保留线程,从而防止该线程用于处理其他请求.如果一个同步请求成为 I/O 绑定(例如,如果它调用一个远程 Web 服务或查询一个远程数据库,并等待调用

ASP.NET 2.0中动态修改页面标题

asp.net|动态|页面 在老外的站上看到解决的好方法,故简单编译之:在一个asp.net 的应用中,经常要动态修改页面的标题,一个典型的例子就是,在一个页面导航的控件中,希望用户点选哪一个连接,在页面的title里就显示相关的内容,举个例子,比如一个网站,有如下的网站架构:有图书分类,下面再有中国图书,外国图书分类,则一般可以用树形或者asp.net 2.0的新增加的导航栏控件(sitemap),来实现,比如 图书--->中国图书;图书---->外国图书等,而如果这个时候,能在页面的<

ASP.NET 2.0中的页面输出缓存

asp.net|缓存|页面 静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.这个过程中,缓存不需要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面.对于那些数据经常更新的页面,则不适用.默认情况下,ASP.NET 2.0启用了页面输出缓存功能,但并不缓存任何响应的输出.开发人员必须通过设置,使得某些页面的响应成为缓存的一部分. 设置页面输出

ASP.NET 2.0 中的 Theme 功能

asp.net ASP.NET 2.0 中新增加了 Theme 的功能,它的出现能让网站实现换肤更加容易. Theme 的实现包括:CSS.Skin.MasterPage. CSS 是用于控制所有 HTML 标记的外观. Skin 是用于控制所有 ASP.NET 服务器调整的外观,并且可以通过属性 cssClass 定义它的 CSS 样式. MasterPage 是 *.aspx 页面模版,不过它没有被定义到 Theme 中. ----------------------------------