ASP.NET知己知彼之基础知识(下)
上篇博客大概的讲了ASP.NET的页面访问原理,以及回发页面和控件执行顺序等知识。因为,都只是文字的描述可能理解体会没有那么清晰。所以,这篇博客打算用一个例子来说明一下。
回顾
上篇博客讲过了,web程序的执行过程需要将客户端的表单提交到服务器执行,然后在生成html页面发送回客户端。这也就照成了,每次提交表单后都会执行一次Pageload事件,同时那些输入控件比如textbox、DropDownList等控件的事件默认是不会时时对你的操作起反应的。
粗略的事件执行顺序
因为这里的事件也不全,每个事件的大概功能呢也不齐全。感兴趣的同学自己再上网查些资料吧。推荐个网址,只有事件顺序没有解释:《ASP.Net事件先后顺序》
1)Perlnit:
①使用 IsPostBack 属性确定是否是第一次处理该页。
②创建或重新创建动态控件。
③ 动态设置主控页。
④动态设置 Theme 属性。
⑤读取或设置配置文件属性值. 如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能会在下一阶段被改写。
2)lint:读取或者初始化控件属性
3)lintComplete
4)PerLoad
5)PageLoad
6)控件Load
7)控件事件
8)……
9)Render
10)PageUnload
实例
本来呢,是想用把pageload之前的事件来说明的,想想不太容易所以就就算了哈。这里只举例说明一下控件事件的执行顺序。
HTML页截图:
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Sample_003 : System.Web.UI.Page
{
int i = 1;
protected void Page_Load(object sender, EventArgs e)
{
//每次页面载入都清空这个文本框
txt_result.Text = "";
txt_result.Text =i++.ToString() + ":PageLoad" + "\n";
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
txt_result.Text +=i++.ToString()+ ":TextChanged" + "\n";
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
txt_result.Text +=i++.ToString() + ":SelectChanged" + "\n";
}
protected void Button1_Click(object sender, EventArgs e)
{
txt_result.Text +=i++.ToString() + ":ButtonClick" + "\n";
}
}
总结
HTML很简单,就给个截图。代码部分也就那样,自己调试一下吧。自己运行一下呢,就会发现在第一个发生的事件一直是PageLoad事件(因为没有在这个事件之前的代码里写入代码),而最后一个必定是ButtonClick事件。那么中间其他的控件呢,其实和你鼠标点击的顺序无关,而是和控件的前后位置有关。因为整个网页中的内容以表单的形式提交到服务器,服务器是无法知道你触发事件的时间顺序,只能知道你触发了那些事件。所以,网页从加载开始,到提交结束,中间控件事件根据位置顺序执行。
关于,网页运行原理和事件执行顺序就到这里了……
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。