(图一)
回发事件:
IsPostBack = true/false;
每次载入页面时,都会执行PageLoad事件:
(图二)
例程一:
(图三)
(图四)
将图三中的代码写在PageLoad事件中,运行程序,页面效果如下:
当前时间、checkBox控件、DropDownList控件在页面载入是时被显示或选中;
(图五)
新的问题:
当图三代码写入PageLoad事件中时,当载入页面时,第一个文本框被设置为密码状态,第二个文本框不可用,第三个
文本框内容为空。此时,在第三个文本框中输入内容,点击 获取内容并拆分(Button1)控件,其右侧文本框仍然不显示
内容;原因在于,点击Button1控件,页面重新被载入,而第一个发生的事件是PageLoad事件,因此,第三个文本框的
内容又一次被清空,因此,最下方文本框不能获得任何数据;
例程二:信息录入页面
(图六)
(图七)
在PageLoad事件中添加如下代码:
添加下列代码后,每次载入页面时,姓名栏默认为空,班级栏默认为二班,性别默认为男;
(图八)
(图九)
信息输入:
(图十)
点击确定按钮后,发现问题:当将上两部分代码(图七和图八)同时添加至控件中时,运行页面,显示结果如下所示:
出错原因:
(图十一)
asp.net页面运行模式:
1)浏览器向服务器发起页面请求;
2)服务器在自己的硬盘中读取该页面的文件(首次读取);
3)服务器对读取到的文件进行编译,生成XHTML文件;
4)将编译好的页面返回给浏览器;
5)如果服务器返回的页面含有submit按钮,当点击按钮后,浏览器会将整个页面返回给服务器;
6)服务器将返回的页面中的必要信息提取出来,作为第一部分,在根据浏览器发过来的页面,在服务器的硬盘中检索到
原始信息,将必要信息和原始信息结合起来,重新编译,形成新的页面(回发页面);
7)将新的页面返回给浏览器(一次往返,一个全新的页面生成);
注意:服务器从硬盘中读取到原始页面,要进行编译,每次编译都会重新执行PageLoad事件,
(图十二)
下图中,if(IsPageBack == false)条件用于判断是否为首次载入页面,如果是首次载入,则执行下列代码:
IsPostBack用于判断是否为首次载入页面或为回发页面;
(图十三)
控件事件的发生顺序:与控件在页面中的位置顺序有关
(图十四)
注意,控件的执行是在服务器对页面进行编译时执行;
下面例程解释控件事件的执行顺序:
(图十五)
(图十六)
如下如所示,执行顺序中,PageLoad永远排在第一,ButtonClick永远排在最后,其他事件也控件的操作顺序无关,至于控件在页面中的排列顺序有关;因为客户端的动作传到服务器,服务器并不知道动作的先后;
实例代码:
(图十七)
(图十八)