您好,欢迎访问三七文档
第6章页面切换与导航2第6章页面切换与导航6.1页面切换与页面间的数据传递6.2站点导航3第6章页面切换与导航本章要点网页间的切换方法网页间的数据传递方法页面导航46.1页面切换与页面间的数据传递网页间的切换方法(1)利用超链接切换到新网页,例如使用a标记或者HyperLink控件直接链接到其他网页。(2)利用Button、ImageButton和LinkButton控件的PostBackUrl属性切换到新网页。(3)使用Response.Redirect方法切换到新的网页。(4)使用Server.Transfer方法切换到新的网页。56.1.3利用Response.Redirect或Server.Transfer切换到新网页1.Response.RedirectResponse.Redirect方法会使浏览器链接到一个指定的URL。当服务器调用Response.Redirect方法时,该方法会创建一个应答,应答头中指出目标网页已经改变,同时指出新的目标URL。客户端浏览器从服务器收到该应答,再利用应答头中的信息发出一个对新URL的请求。这就是说,使用Response.Redirect方法时重定向操作发生在客户端,共涉及两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个应答;第二次是请求应答中声明的新页面,得到重定向之后的页面。66.1.3利用Response.Redirect或Server.Transfer切换到新网页2.Server.TransferServer.Transfer方法直接在服务器端把执行流程从当前的网页转到同一个应用程序的另一个网页。调用Server.Transfer方法时,当前的页面终止执行,然后将执行流程转入另一个页面,但新的页面仍使用前一页面创建的应答流。如果用Server.Transfer方法从一个页面切换到另一个页面,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面切换。76.1.4网页间的数据传递1.使用QueryString传递数据切换到另一个网页时直接在网页的URL后添加传递的参数,第一个参数前用“?”将其和网页名称分隔开,参数之间用“&”分隔,每个参数的形式为“变量名=值”。而在另一个网页中使用Request.QueryString[stringName]接收传递的参数。【例6-1】演示如何直接在网页名称后附带参数传递数据。86.1.4网页间的数据传递2.利用Session对象传递或共享数据由于每个用户都可以有自己的Session,而创建的Session对象并不局限于某一个网页,所以可以使用Session对象在多个页面之间共享数据。【例6-2】演示如何利用Session对象传递数据。96.1.4网页间的数据传递3.利用PreviousPage属性获取数据如果两个ASP.NET网页属于同一个应用程序,当在源网页中利用Server.transfer或者按钮控件的【PostBackUrl】属性切换到目标网页时,目标网页可以使用PreviousPage属性来获取源网页中的公共属性或控件值。如果获取源网页中的公共属性,需要在目标网页的源代码中添加代码:%@PreviousPageTypeVirtualPath=~/SourcePage.aspx%但是,如果目标网页不需要获取源网页的公共属性,而仅仅获取源网页中的控件值,则不需要添加这行代码。【例6-3】利用PreviousPage属性获取源网页的控件值。106.2站点导航站点导航(1)使用站点地图描述站点的逻辑结构。添加或移除页面时,开发人员可以简单地通过修改站点地图来管理页导航。(2)提供导航控件在网页上显示导航菜单。导航菜单以站点地图为基础。(3)可以以代码方式使用ASP.NET站点导航,以创建自定义导航控件或修改在导航菜单中显示的信息的位置。在VS2005中,提供的导航控件有SiteMapPath控件、Menu控件和TreeView控件。一般情况下,开发人员利用站点地图和SiteMapPath控件实现自动导航,利用Menu控件或者TreeView控件实现自定义导航。116.2.1利用站点地图和SiteMapPath控件实现站点导航站点地图是指描述站点逻辑结构的XML文件,该文件的扩展名为.sitemap。SiteMapPath控件以显示导航路径的方式显示当前页在站点中的位置,定义好站点地图以后,只需要将该控件拖放到站点地图中包含的.aspx页面上,它就会自动实现导航,不需要开发者编写任何代码。注意:只有包含在站点地图中的网页才能被SiteMapPath控件导航;如果将SiteMapPath控件放置在站点地图中未列出的网页中,该控件将不会显示任何信息。126.2.1利用站点地图和SiteMapPath控件实现站点导航SiteMapPath控件的常用属性CurrentNodeStyle:定义当前节点的样式,包括字体、颜色、样式等NodeStyle:定义导航路径上所有节点的样式ParentLevelsDisplayed:指定在导航路径上显示的相对于当前节点的父节点层数。默认值为-1,表示父级别数没有限制PathDirection:指定导航路径上各节点的显示顺序。默认值为RootToCurrent,即按从左到右的顺序显示从根节点到当前节点的路径。另一选项为CurrentToRoot,即按相反的顺序显示导航路径136.2.1利用站点地图和SiteMapPath控件实现站点导航PathSeparator:指定导航路径中节点之间分隔符。默认值为“”,也可自定义为其他符号PathSeparatorStyle:定义分隔符的样式RenderCurrentNodeAsLink:是否将导航路径上当前页名称显示为超链接。默认值为falseRootNodeStyle:定义根节点的样式ShowToolTips:当鼠标悬停于导航路径的某个节点时,是否显示相应的工具提示信息。默认值为true,即当鼠标悬停于某节点上时,显示该节点在站点地图中定义的Description属性值146.2.1利用站点地图和SiteMapPath控件实现站点导航【例6-4】创建站点地图,然后利用SiteMapPath控件实现自动导航。156.2.2利用Menu控件实现自定义导航Menu控件主要用于创建一个菜单,让用户快速选择不同页面,从而完成导航功能。该控件可以包含一个主菜单和多个子菜单。菜单有静态和动态两种显示模式。静态显示模式是指定义的菜单始终完全显示,动态显示模式指需要用户将鼠标停留在菜单项上时才显示子菜单。166.2.2利用Menu控件实现自定义导航【例6-5】假定网站包含下面的页面。个人资料:包含个人简介(p1.aspx)、学习经历(p2.aspx)、业余爱好(p3.aspx)。学习资料:包含学习资料1(x1.aspx)、学习资料2(x2.aspx)。备忘录:包含备忘录1(b1.aspx)、备忘录2(b2.aspx)、备忘录3(b3.aspx)、备忘录4(b4.aspx)。利用Menu控件在网页中添加一个菜单,实现自定义导航功能。176.2.3利用TreeView控件实现自定义导航TreeView控件以树形结构显示节点项。根节点下可以包含多个子节点,子节点下又可以包含子节点,最下层是叶节点。根节点可以只有一个,也可以有多个。除了叶节点之外,每个节点还可以根据用户需要展开和折叠,让用户只观察所感兴趣的那一级数据。【例6-6】利用TreeView控件实现如图6-7所示的导航功能,当单击“节”时,导航到对应的网页。
本文标题:页面切换与导航
链接地址:https://www.777doc.com/doc-3508196 .html