第五章:Asp.net的运行模型
在这一章里面,我们要学习以下几点内容
1:Page类
2:Asp.net控件的分类
3:页面之间的跳转,及传值
4:如何用url查询字符串传递汉字
5:设置控件成为焦点,设置WebForm窗体的默认按钮
Page类
一个asp.net应用程序中的每一个页面都是继承自Page类。
1)通过IsPostBack判断一个页面是否第一次被加载
在页面加载的是否我给Text2.Text=“3”值成功
当我手动输入“4”的时候 再点Button却取的还是“3”
如果在加载的时候不设置Text2.Text=“3” 则去取值正确。
不知道是TextBox问题还是Button问
2)通过RegisterClientScriptBlock注册客户端的js
3)通过Page_Load事件进行数据的初始化
4)Page事件的工作原理:
在asp.net中有两种事件。一种是客户端事件,这种事件由客户端触发,由客户端处理。
比如:onmoseover,onmouseout等。另外一种事件是服务器端事件,这种事件是由Page类
所产生的。这种事件的特点是:由客户端触发,但客户端不处理,直接交由服务器端来处理
比如:按钮的单击事件,可见如果引发了服务器端事件,页面一定会提交到服务器。我们以 后把这个过程被称为:"页面的回传",注意回传是客户端到服务器的
5)Page页面的处理过程:
A)页面发生了回传,客户端会把当前页面的控件状态(ViewState)会发给服务器端
B)服务器重新加载页面,此时页面的状态与设计时的状态一致
C)服务器把从客户端接受过来的ViewState数据状态赋给加载的页面,此时
页面的控件状态与客户端发生回传时的控件状态一致
D)触发页面Page_Load事件
E)回传事件处理
F)页面返回给客户端
举例:
1)定义一个变量,在一个按钮里面改变值,在另外一个按钮里面显示值
2)加上一个textbox控件,在试一试。从中体会ViewState的作用
Asp.net控件的分类
从大体的方面Asp.net控件大致上分成两类。
1:Web控件 2:html控件
Web控件与html控件的区别
1)Web控件是运行在服务器端,而html控件是运行在客户端的
2)Web控件是运行在服务器端,经IIs解析成html控件后在客户端来显示
3)Web控件的标记是<asp runat="server">来标识
4)html控件很容易变成Web控件[单右-->作为服务器控件运行]
5)asp.net里面之所以有Html控件,是照顾到以前asp
6)html控件适合于客户端编程,而web控件适合于服务器端编程
7)为了减轻服务器的负荷,应该尽可能使用html控件
8)如果在一个模态窗体中加入Web服务器控件,每次页面回传时,都会弹出一个新窗口,
为了避免这种情况,可以在模态窗体的<head>与<head>之间加入<base target="_self"/>
举例:思考用那种类型的控件
1)用户输入两个数,求和[用文本框]
2)让用户输入一些信息,添加到数据库[用文本框]
如何实现从一个页面跳转到另外一个页面,以及页面的传值
1)HyperLink控件:
特点:不能传递Web控件的值,但是可以传递Url查询字符串,需要用户控制
方法:设置NavigateUrl方法。比如:2.aspx?a=4&b=5
接受:Request.QueryString["变量名"]
2)Response.Redirect:
特点:不能传递Web控件的值,但是可以传递Url查询字符串,不需要用户控制
比如:从a页面跳到b页面,然后由b页面自动跳到C页面
也可以通过Url查询字符串来传递控件的值。比如:
Response.Redirect("2.aspx?xm="+ this.txtUser.Text);
方法:Response.Redirect("目标网页?url查询字符串")。
比如:Response.Redirect("2.aspx?a=3&b=4")
接受:Request.QueryString["变量名"]
3)Server.Transfer:
特点:可以传递Web控件的值,也可以传递Url查询字符串,不需要用户控制
方法:Server.Transfer("目标网页?url查询字符串")。
接受:Request.QueryString["变量名"]或Request.Form["txtUser"]授受控件的值 4)跨网页公布:
特点:可以传递控件,当然可以传递控件的一切属性,需要用户控制,更加灵活
方法:在拥有"PostBackUrl"属性上指定目的网页。一般为按钮
授受:if (PreviousPage != null) PreviousPage.FindControl("控件名");
举例:
1)源页面:选择一个部门。在目的页面里面显示该部门的全部职工
2)源页面:输入用户名密码。在目的页面里面检验用户名密码是否正确(不经过数据库)
如何用url查询字符串传递汉字
在通过rul查询字符串传递汉字时,有时候会发现传递的值和接收到的内容不符或者变成一堆乱 码。这样就可以在传递之前把汉字进行编码。之后再解码
编码:Server.UrlEncode("汉字")
解码:Server.UrlDecode("汉字")
设置控件成为焦点,设置WebForm窗体的默认按钮
在<form> 标签中声明
语法:
<form defaultbutton="Button1" defaultfocus="TextBox1">
评论