您现在的位置是:首页 > 开发教程

开发教程

ASP.NET2.0入门经典(第四版)-导航控件功能解析

2020-11-14 10:24:49 开发教程 admin
3.5.3导航控件有三个创意新颖的控件用于站点的导航,使用它们只需要很少的工作就可以实现丰富的功能。与使用旧版ASP.NET开发人员的情况相比,这是一个非常大的改进——以前在任务列表中每一项都需要耗费开发人员数小时的工作现在只需要数秒钟的时

3.5.3导航控件


有三个创意新颖的控件用于站点的导航,使用它们只需要很少的工作就可以实现丰富的功能。与使用旧版ASP.NET开发人员的情况相比,这是一个非常大的改进——以前在任务列表中每一项都需要耗费开发人员数小时的工作现在只需要数秒钟的时间!Menu、TreeBiew和SiteMapPath控件是ASP.NET2.0的新控件,它们的使用快捷而简单。下面将逐个查看这些控件;在本节后面将向WroxUnited站点添加这些控件。

1.SiteMapPath控件
这个控件用于为站点添加breadcrumb功能,帮助用户查看位于站点中的什么层次结构。WroxUnited站点演示了这个功能,如图3-30所示。

图3-30

术语breadcrumb很可能来源于一个古老的童话HanselandGretel——两个孩子到深林中探险,他们在身后留下一串面包碎屑以便能找到回家的路。当用户单击浏览站点的页面时,可能会移动到不同的区域或子区域,直到经由数个链接深入到应用程序内部。breadcrumb可以帮助用户返回到浏览路径上的某个点,而不用依赖于浏览器的返回按钮。您可能遇到过这样的情况,使用返回按钮无法返回某个链接——相当于乌鸦吃掉了留在地上的面包屑。有些页面以一种独特的方式向服务器提交信息,如果不再次提交信息将无法返回这个页面。

Internet上的很多站点都提供breadcrumb功能。WroxUnited就是一个,如图3-30所示。然而,为了向站点添加其中某个控件,必须首先创建Web.SiteMap文件。已经有这个文件啦?是的!(如果没有,需要返回到第2章学习怎样创建该文件!)

在创建Web.SiteMap文件之后,添加SiteMapPath控件并查看结果就很容易了——所需做的就是在页面上添加该控件。要在WroxUnited站点中添加这个控件,最好是把它添加到Master页面,这样所有的Content页面都同时获得了导航的功能!

在下一个“试一试”中,需要使用WroxUnited应用程序的Chapter03版本(保存在下载代码的Chapter03文件夹内,名称是WroxUnited)。作者已经修改了这个版本,从而使您可以完成这些练习。

如果打开第3章的WroxUnited应用程序,将会看到如图3-31所示的画面。如果所看到的画面与该图不同,不用担心——VWD在显示使用CSS的页面时有些问题,所以不用滚动就可以看到大部分网页。

虽然这个站点看起来很正常,但缺少两样东西:页面左边的链接和页面底部的breadcrumb。在下面的试一试中,将为站点添加这两项内容,并查看添加导航功能是多么简单。

图3-31

试一试:添加SiteMapPath控件
(1)打开第3章的WroxUnited应用程序(C:\BegASPNET2\Chapters\Begin\Chapter03\WroxUnited)并打开site.master文件。确保位于DesignView中。
(2)将光标放置在页面底部的Breadcrumbsspan内部——它是页面右下方的红色物体。当在窗口右下方看到<span#breadcrumbs>以高亮显示时,表示找到了正确的控件,如图3-32所示。

图3-32

(3)现在从工具箱的Navigation区将SiteMapPath控件拖放到Breadcrumbsspan内(如图3-33)所示。

图3-33

(4)忽略该控件的CommonTask菜单——这里只需要修改控件的名称。确保选中SiteMapPath控件并在Properties面板中将其ID修改为crumbs。注意在图3-34中鼠标光标高亮显示该控件的ID属性。
(5)现在再次启动Default.aspx页面运行站点并查看位于页面底部的工作结果,如图3-35所示。注意作者浏览器中的URL是http://localhost:1621/WroxUnited/default.aspx。您的端口号(冒号后面的数字)可能会与此不同。
(6)将URL的Default.aspx部分修改为History.aspx以浏览History页面。图3-36显示了页面底部呈现的SiteMapPath控件是如何变化的。

图3-34


图3-35


图3-36

操作回顾
在这个例子中,将向一个修改过的WroxUnited站点中添加了一个SiteMapPath控件,从而可以向用户反馈正在查看的是哪个页面,以及这个页面在站点中位于哪个层次结构。只要向页面添加这个控件就可以获得该功能,因为在应用程序文件中已经包含了一个Web.SiteMap文件。

SiteMapPath控件会挂钩到Web.SiteMap文件(如果存在的话)并通过计算用户正在查看的页面、以及该页面在站点地图中所处的节点顺序动态解释这个文件的内容。下面是与您查看的节点相关的Web.SiteMap代码。
<siteMap>
<siteMapNodetitle="Home"url="Default.aspx"
description="WroxUnitedHomePage">
...
<siteMapNodetitle="About"description="Abouttheclub"url="
about.aspx">
<siteMapNodetitle="History"url="History.aspx"
description="Thehistoryoftheclub"/>