视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ASP.NET Page函数调用顺序解析
2020-11-27 22:43:08 责编:小采
文档

一.初始化部分:
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:释放相应的资源,如数据库连接,文件句柄等

下载本文
显示全文
专题