当前位置:文档之家› 第四章课后答案

第四章课后答案

第4章服务器控件
4.5.1 作业题
1.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty。

如图13、14所示。

图13 在TextBox中输入信息图14 一键清空所有TextBox
2. 改写作业题3-2,要求页面传值采用POST请求
3. 在主页上添加一个RadioButtonList,添加“少林派”、“丐帮”、“古墓派”三个列表项。

添加一个CheckBox,控制RadioButtonList的表项横排或竖排显示。

添加一个ListBox,当选择“少林派”时,添加列表项“达摩”、“扫地僧”、“方世玉”。

当选择“丐帮”时,添加列表项“洪七公”、“黄蓉”、“乔峰”。

当选择古墓派时,添加列表项“林朝英”、“小龙女”、“杨过”。

再添加两个CheckBox,分别控制ListBox控件中的内容加粗或倾斜显示。

添加一个Label控件,当选中ListBox中的某个表项时,自动在Label中显示:“您将要拜入某某帮谁谁门下”。

如图15——图16所示。

图15 运行结果图16 选择了某师傅之后的运行结果
4. 新建一个网站,在解决方案资源管理器中,右击项目名称选择“添加现有项”,然后将本章前3个作业题的页面全部添加进来,修改页面名称为homework4_1.aspx的形式。

再添加一个默认主页Default.aspx,添加一个HyperLink控件、一个LinkButton控件和一个HTML<a></a>元素,分别链接到homework4_1.aspx、homework4_2.aspx、homework4_3.aspx。

如图17——图18所示。

图17 解决方案资源管理器图18 运行结果
见“课后习题源代码”文件夹下的“homework4-1——homework4-4”
4.5.2 思考题
1.在中重定向到其他网页有哪些方法?
(1) 采用HTML的 <a>标签,例如:
<a href="">前往外部站点谷歌</a>
<a href="NewPage.aspx">点击前往本站点内部页面</a>
(2) 采用HyperLink控件,例如:
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl="">点击前往外部站点谷歌</asp:HyperLink> <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="NewPage.aspx">点击前往本站点内部页面</asp:HyperLink>
(3) 采用Response.Redirect方法,例如:
Response.Redirect("");
Response.Redirect("NewPage.aspx");
(4) 采用Response.AppendHeader或Response.AddHeader方法,例如:
Response.Status = "302 页面重定向!";
Response.AppendHeader("Location", "");
Response.Status = "302 页面重定向!";
Response.AppendHeader("Location", "NewPage.aspx");
(5)采用javascript脚本,例如:
Response.Write("<script>window.location.href =
''</script>");
Response.Write("<script>window.location.href = 'target.aspx'</script>");
(6)采用Button、LinkButton、ImageButton等控件的PostBackUrl属性,例如:
//跳转到站点外部
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl=" "/>
//跳转到站点内部
<asp:Button ID="Button1" runat="server" Text="Button"
PostBackUrl="NewPage.aspx"/>
(7) 采用Server.Transfer方法,例如:
Server.Transfer("NewPage.aspx");//只能跳转到站点内部
(8) 采用Server.Execute方法,例如:
Server.Execute("NewPage.aspx");//只能跳转到站点内部
2.在的页面之间传递数据有哪几种方式,并说出他们的优缺点。

(1) 采用GET方式,将数据放在URL地址栏中传递。

例如:
<A href="target.aspx?variable1=1111&variable2=2222">链接地址传送</A> Response.Redirect("target.aspx?variable1=1111&variable2=2222")
Server.Transfer("target.aspx?variable1=1111&variable2=2222")
接收页面: string str = Request.QueryString["variable1"]
优点:效率高、简单
缺点:安全性较低、不能传递对象,传递的数据长度有限
(2) 采用POST方式,将数据放在HTTP请求体中传递。

优点:安全性较高,可传送的数据长度没有限制,可传送非ASCII字符和对象。

缺点:执行效率低于GET方式
(3) 将数据保存在cookie中传递。

优点:简单,不占用服务器资源
缺点:浏览器可能不支持或禁用cookie,不安全,可能被伪造
(4) 将数据保存在session中传递。

优点:简单,能传递对象
缺点:占用服务器资源。

20分钟内无操作session对象会被释放,所以数据容易
丢失。

(5) 将数据保存在application中传递。

优点:使用简单,能够传递对象
缺点:作为全局变量,可被所有用户访问和使用,容易被误操作。

占用服务器资
源。

若保存数据的服务器端进程被损坏(如因服务器崩溃或关闭而损坏),那么数
据就会丢失。

(6) 采用server.transfer方法。

在新页面中通过Context.Handler来获得前一个页面传递的各种数据类型的值、
表单数据、QueryString.
优点:直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请
求。

可以传递各种数据类型的值和控件的值。

缺点:客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意
想不到的问题。

比如如果源页面和目的页面不在同一个虚拟目录或其子目录下,
那么使用相对路径的图片、超链接都会导致错误的指向。

(7) 使用隐藏域,即Input(Hidden)控件
优点:实现简单,隐藏域是标准的HTML控件,不需要复杂的编程逻辑。

隐藏域在
页面上存储和读取,不需要任何服务器资源,几乎所有浏览器和客户端设备都支
持具有隐藏域的窗体。

缺点:仅仅支持简单的数据结构,存储量少,因为它被存储在页面本身,所以无
法存储较大的值,而且大的数据量会受到防火墙和代理的阻止。

安全性不高可能
被伪造。

(8) 将数据保存在数据库中
优点:稳定,安全
缺点:执行效率低。

相关主题