.NET----站点导航

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

·1·第16章站点导航上一章介绍了ASP.NET2.0的母版页机制,本章继续介绍与母版页经常搭配使用的站点导航系统。简单来说,站点导航系统就是用户在游览网站时的“导游”,能够随时向用户提供两种服务:用户定位:告诉用户当前浏览页面在哪儿,即告诉用户当前的页面路径。例如,在一个网上书店系统中,页面路径类似于:首页图书商品文学类。瞬间移位:通过树、菜单等形式的超级链接,使用户可以随时跳转到其他页面。为了给读者一个更加直观的印象,下面给出一个站点导航系统的母版页,如图16.1所示。树状菜单:迅速定位页面页面路径:定位页面位置图16.1站点导航系统示意本章,就将全面介绍ASP.NET2.0中的导航系统。16.1ASP.NET导航系统概述有了ASP.NET2.0的帮助,想要实现图16.1所示的导航是非常简单的,只要拖放几个控件基本上就可以了。但是,为了理解其中的来龙去脉,更加灵活的使用导航,就需要更加深入的探索。·414·16.1.1导航概述为了方便用户的使用,任何由多个页面组成的网站都需要某种导航机制。例如,一个典型的电子商务网站往往被组织成各个部分,其中包括产品栏如图书、音像等,其中的每个产品还可能含有子部分。书目按类型划分,如古代文学、现代文学,等等。于是,网站的这些逻辑结构形成一个分类层次,如图16.2所示。图书商品Books.aspx首页Default.aspx古代文学AncientLiterature.aspx现代文学MordernLiterature.aspx音像商品Media.aspx音乐Audio.aspxVCD/DVDVideo.aspx图16.2示例站点eShop的逻辑结构说明:如图16.2所示给出了逻辑结构的示例网站,是本章各个示例均使用的示例网站,取名为eShop。在ASP.NET2.0以前,开发者需要自己实现导航功能,ASP.NET2.0引入了新的导航系统,使的完成导航变得非常容易。总体来说,ASP.NET2.0站点导航系统包含以下元素:站点地图(SiteMaps):包含了网站的页面数据,以及它们之间的层次关系,也可以理解为网站的逻辑结构。导航控件(NavigationControls):以菜单、树、列表等形式组织的页面链接,链接的内容来自于站点地图中包含的数据;ASP.NET提供了3个非常好用的导航控件。菜单(Menu)。树视图(TreeView)。地图路径(SiteMapPath)。站点地图提供器(SiteMapProviders)。提供器是一个中间桥梁,把站点地图数据传递给导航控件。可编程控件(ProgrammaticControls)。通过编程的方式,更加灵活的用代码实现导航。·415·16.1.2从网站到导航控件下面将总体看一下从网站到导航控件的整体流程。利用ASP.NET导航系统实现站点导航的过程,可以分为以下几个步骤,如图16.3所示。网站站点地图数据提供器SiteMapProviderSystem.Web.XmlSiteMapProviderCustomSiteMapProvider(1)(2)存储介质中的站点地图Web.sitemapXMLDBSystem.Web.UI..WebControls.SiteMapPathSystem.Web.UI.WebControls.SiteMapDataSourceSystem.Web.UI..WebControls.TreeViewSystem.Web.UI..WebControls.Menu(4)(4)内存中的站点地图SiteMap(3)图16.3ASP.NET中的导航系统(1)网站外存地图地图刻画了网站的逻辑结构,可以用XML文件、数据库,或者ASP.NET默认的Web.sitemap文件进行存储;(2)外存地图地图提供器可以使用默认的读取XML文件的提供器,也可以使用其他的提供器;(3)地图提供器SiteMap内存对象SiteMap是内存中的网站地图;(4)SiteMap内存对象导航控件利用导航控件,把SiteMap对象中的地图显示出来,常用的控件包括SiteMapPath、TreeView,以及Menu。16.3导航控件上一节介绍了内存中的地图对象——SiteMap,下面来看如何利用导航控件将地图展现出来。常用的导航控件包括:面包屑:SiteMapPath。树视图:TreeView。·416·菜单:Menu。16.3.1使用SiteMapPath导航【本节参考示例代码:\示例代码\C16\SiteMapPath】面包屑(SiteMapPath)这个导航控件显示一条路径,这条路径显示了从网站的首页到当前页面的层次结构,一个典型的示例如图16.8所示。图16.8eShop示例中的SiteMapPath说明:在格林童话《汉泽尔和格雷特尔》中,当汉泽尔和格雷特尔穿过黑暗的森林时,他们在沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路。使用SiteMapPath好处有很多,例如再eShop中,当用户发现商品不够满意时,就可以通过SiteMapPath快速回到上一层商品目录,或直接进入上层产品目录寻找其他的类似产品。用“面包屑”的方式呈现浏览用户走过的路径,可以轻松完成这些功能。SiteMapPath控件从SiteMap类中获取站点的地图信息,并用超级链接列表的形式显示在页面上,常用属性如图16.9所示。System.Web.WebControls.SiteMapPathPathSeparatorPathDirectionParentLevelsDisplayedSiteMapProviderRenderCurrentNodeAsLinkProvider图16.9SiteMapPath常用属性一览属性说明如表16.4所示。表16.4SiteMapPath常用属性属性/方法说明ParentLevelsDisplayed获取或设置控件显示的相对于当前显示节点的父节点级别数;默认值为-1,指示对控件显示的父级别数没有限制PathDirection获取或设置导航路径节点的呈现顺序PathSeparator获取或设置一个字符串,该字符串在呈现的导航路径中分隔Provider获取或设置与Web服务器控件关联的SiteMapProvider;如果没有显式设置提供器,将使用默认的站点地图提供器RenderCurrentNodeAsLink指示是否将表示当前显示页的站点导航节点呈现为超链接SiteMapProvider获取或设置用于呈现站点导航控件的SiteMapProvider的名称·417·下面,仍以eShop为例,实现如图16.8所示的导航。1.新建示例新建网站SiteMapPath,站点逻辑结构同【16.2.2】示例相同,请参考图16.2。2.添加Web.sitemap文件请参考【16.2.4】节示例第2步。3.在母版页添加SiteMapPath为了保证网站的每个页面上都可以导航,面包屑控件常常添加在母版页中。有两种方式向母版页中添加一个面包屑控件。拖放方式打开母版页的设计视图,然后从工具窗口的“导航”面板中,拖放“”到母版页中,然后在面包屑控件的智能标记中选择“自动套用格式”,在弹出的“自动套用格式”对话框中,可以选择常用的格式,如图16.10所示。图16.10自动套用SiteMapPath格式选择某一种格式,然后单击“确定”按钮,即可在母版页中添加一个SiteMapPath控件,以彩色型为例,拖放后母版页将自动添加如下代码。代码16-7彩色格式的SiteMapPath控件代码:MasterPage.master1.asp:SiteMapPathID=SiteMapPath1runat=serverFont-Names=Verdana2.PathSeparator=:3.PathSeparatorStyleFont-Bold=TrueForeColor=#990000/4.CurrentNodeStyleForeColor=#333333/5.NodeStyleFont-Bold=TrueForeColor=#990000/6.RootNodeStyleFont-Bold=TrueForeColor=#FF8000/7./asp:SiteMapPath代码方式在页面的代码视图中,通过直接输入如代码16-7所示的代码,也可以向页面中添加一个SiteMapPath代码。4.首页跳转·418·为了显示面包屑的导航功能,在站点首页Default.aspx的页面加载事件中加入跳转语句,使页面跳转到“古代文学”页面。代码16-8系统首页跳转:Default.aspx.cs1.///summary2.///页面加载事件:跳转到“古代文学”3.////summary4.protectedvoidPage_Load(objectsender,EventArgse)5.{6.Response.Redirect(AncientLiterature.aspx);7.}5.编译执行按Ctrl+F5执行程序,结果如图16.8所示。6.示例小结本例中,没有给页面上添加的SiteMapPath控件指定站点地图,即使用默认的SiteMap对象,读取用Web.sitemap文件描述的站点逻辑结构。这是最简单、最常用的方式,不用写一句代码便可以轻松实现。在【16.4.1】节中,将对如何使用多个地图文件创建面包屑做更深一步的探讨。16.3.2使用TreeView导航【本节参考示例代码:\示例代码\C16\SiteMapPath】树视图(TreeView)是一个层次结构的超链集合,组织了站点所有页面,典型的TreeView示例如图16.11所示。图16.11eShop示例中的TreeView同SiteMapPath不同,TreeView无法直接显示SiteMap对象中的地图,而必须通过另外一个中间对象SiteMapDataSource才可以。即SiteMapDataSource从SiteMap对象中取得网站地图,然后作为TreeView的数据源,如图16.12所示。·419·站点地图类SiteMap地图数据源SiteMapDataSource导航控件图16.12地图数据源是SiteMap和TreeView、Menu之间的桥梁TreeView的常用成员如图16.13所示。SelectedNodeSystem.Web.WebControls.TreeViewDataSourceIDCollapseImageToolTipAutoGenerateDataBindingsSelectedNodeChangedTreeNodeExpandedTreeNodeCollapsed图16.13SiteMapPath常用属性和事件一览常用成员说明如表16.5所示。表16.5SiteMapPath常用成员属性/方法说明AutoGenerateDataBindings获取或设置一个值,指示TreeView控件是否自动生成树节点绑定CollapseImageToolTip获取或设置可折叠节点的指示符所显示图像的工具提示DataSourceID获取或设置数据源对象IDSelectedNode获取表示TreeView控件中选定节点对象SelectedNodeChanged当选择TreeView控件中的节点时发生TreeNodeCollapsed当折叠TreeView控件中的节点时发生TreeNodeExpanded当扩展TreeView控件中的节点时发生同SiteMapPath类似的是,默认情况下新建一个SiteMapDataSource对象,它将使用默认的SiteMap对象,读取用Web.sitemap文件描述的站点逻辑结构。下面的例子说明了这个特性。1.新建示例新建网站TreeView,站点逻辑结构同【16.2.2】示例相同,请参考如图16.2所示。2.添加Web.sitemap文件请参考【16.2.4】节示例第2步。3.

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功