4-1 /2网页生命周期 PageLoad事件

(图一)

回发事件:

 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永远排在最后,其他事件也控件的操作顺序无关,至于控件在页面中的排列顺序有关;因为客户端的动作传到服务器,服务器并不知道动作的先后;


实例代码:

(图十七)


(图十八)







猜你喜欢

转载自blog.csdn.net/weixin_38887666/article/details/80161879
4-1