第五章: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">

评论