《第7章_网站地图与页面导航剖析》由会员分享,可在线阅读,更多相关《第7章_网站地图与页面导航剖析(34页珍藏版)》请在金锄头文库上搜索。
1、第7章 网站地图与页面导航,内容,ASP.NET站点导航概述 站点地图 配置多个站点地图 SiteMapPath控件 SiteMapDataSource控件 Menu控件 TreeView控件,7.1 ASP.NET站点导航概述,ASP.NET站点导航能够将指向所有页面的链接存储在一个文件中,并用一个特定Web服务器控件在页面上呈现导航菜单。 ASP.NET站点导航提供下列组件,用于为站点创建一致的、容易管理的站点导航方案。 站点地图 站点地图提供程序 ASP.NET导航控件 站点导航API,各个ASP.NET站点导航组件之间的关系,7.2 站点地图,在ASP.NET中,微软为了简化创建站点地
2、图的工作,提供了一套用于导航的站点地图技术。 通过ASP.NET站点导航,可以按层次结构描述站点的布局。 假定一个企业网站共有8页,构建如图所示的站点导航结构。,建立站点地图,站点地图文件是后缀名为.siteMap的XML文件,描述了站点结构,供站点导航API和站点导航控件正确公开站点的导航结构,【例7-1】演示如何创建一个站点地图文件。,7.3 配置多个站点地图,ASP.NET站点导航使用一个名为Web.sitemap的站点地图文件来描述站点的层次结构。 但有时可能要使用多个站点地图文件或站点地图提供程序来描述整个网站的导航结构。 下面介绍两种配置多个站点地图的方法。 从父站点地图链接到子站
3、点地图文件。 在web.config文件中配置多个站点地图。,7.3.1 从父站点地图链接到子站点地图文件,对于具有多个子站点的大型站点,有时需要在父站点的导航结构中加入子站点的导航结构,对于每个子站点都有其独立的站点地图文件。 这种情况,在父站点地图中需要显示子站点地图的位置创建一个siteMapNode节点,并将其属性siteMapFile指定到子站点的站点地图文件即可,代码如下: ,【例7-2】演示如何从父站点地图链接到子站点地图文件。,7.3.2在web.config文件中配置多个站点地图,要配置多个站点地图还可以在web.config文件中配置站点提供程序,添加对不同站点地图的引用。
4、 【例7-3】演示如何在web.config文件中配置多个站点地图。,参见示例第07章SiteMapDemoWeb.sitemap、Products.sitemap 、Service.sitemap、web.config,7.4 SiteMapPath控件,该控件根据Web.sitemap定义的数据自动显示当前页面的位置,并以链接的形式显示返回主页的路径。 注意:只有在站点地图中列出的页才能在SiteMapPath控件中显示导航信息。如果将SiteMapPath控件放置在站点地图中未列出的页上,该控件将不会向客户端显示任何信息。 【例7-4】演示SiteMapPath的使用。,参见示例第07章
5、SiteMapDemoMasterPage.master,SiteMapPath的重要属性,7.5 SiteMapDataSource 控件,SiteMapDataSource控件提供了一个数据源控件,Web 服务器控件及其他控件可使用该控件绑定到分层的站点地图数据,SiteMapDataSource绑定到站点地图数据,并基于在站点地图层次结构中指定的起始节点显示其视图。 默认情况下,起始节点是层次结构的根节点,但也可以是层次结构中的任何其他节点。 表:SiteMapDataSource的属性与起始节点关系,【例7-5】演示SiteMapDataSource控件的使用。,7.6 Menu控件,
6、定义Menu菜单内容 Menu控件样式,7.6.1 定义Menu菜单内容,设计时手动添加菜单内容; 以编程方式添加菜单内容; 绑定到数据源的方式来显示菜单内容,1设计时手动添加菜单内容 【例7-6】演示如何在设计时手动添加菜单内容。,手动添加内容,垂直,水平,参见示例第07章SiteMapDemoStaticInsertMenuItem.aspx,2以编程方式添加菜单内容 Menu控件提供了一个Items的集合属性,这是一个MenuItemCollection集合类型的属性,可以向该属性添加菜单项来实现动态添加菜单项的效果。 使用动态编程的方式可以从数据库、文件等多种文件导入菜单项数据,一个最
7、常用的场合就是根据用户权限动态产生菜单项,这在大型应用系统开发中经常被用到。 【例7-7】演示如何以编程方式动态添加菜单内容。,参见示例第07章SiteMapDemoDynamicInsertMenuItem.aspx,3绑定到数据源的方式来显示菜单内容 对于一些小型站点或个人站点,可以通过手工方式添加导航菜单的内容,但对于一些企业级的站点,这种方式很不利于后期维护,因此通常是将菜单内容集中存储,如站点地图或XML文件等,然后通过使用数据源控件和Menu控件关联来展示站点的导航层次结构。 【例7-8】演示如何将Menu控件绑定站点地图。,参见示例第07章SiteMapDemoMenuSiteM
8、ap.aspx,Menu控件除了与站点地图绑定外,还可以与XML文件进行轻松地绑定,通过将Menu控件的DataSourceID属性指定为XmlDataSource控件即可。 【例7-9】演示如何将Menu控件绑定到一个XML文件。,参见示例第07章SiteMapDemoBooks.xml 和MenuXMLFile.aspx,7.6.2 Menu控件样式,Menu控件具有静态和动态两种菜单模式,因此系统分别提供了对这两种模式的样式定义,表7-4列出了Menu控件中的一些样式及其含义。 表7-4 Menu控件样式,Visual Studio 2008为Menu控件提供了很多预定义的格式,单击Me
9、nu控件右上角的三角符号,弹出的任务窗口中选择“自动套用格式”,将弹出自动套用格式窗口,可以在该窗口中选择一种样式。,7.7 TreeView控件,TreeView控件的应用相当普及,它以树形结构显示分层数据,如Windows的资源管理器左侧的文件目录就是一个相当经典的TreeView控件的应用例子。,7.7.1 定义TreeView节点内容,TreeView控件由一个或多个节点构成,树形结构中的每一项都称为“节点”。表7-5列出了三种不同的节点类型。 表:TreeView 控件的节点类型,定义TreeView控件节点内容的三种方法: 设计时添加节点内容; 以编程方式添加节点内容; 绑定到数据
10、源的方式来显示节点内容。,1设计时添加节点内容 【例7-10】演示如何在设计时添加TreeView控件的节点内容,参见示例第07章SiteMapDemoStaticInsertTreeNode.aspx,2以编程方式添加节点内容 在设计时使用节点编辑器添加节点内容虽然方便,但是许多情况下树状数据是动态的,需要以编程的方式进行添加。 TreeView控件提供了一个Nodes的集合属性,该属性表示TreeView控件的节点集合,每个TreeNode对象也具有一个ChildNodes属性,表示当前节点的子节点集合。 【例7-11】演示如何以编程方式添加TreeView控件的节点内容,参见示例第07章
11、SiteMapDemoDynamicInsertTreeNode.aspx,3绑定到数据源的方式来显示菜单内容 与Menu控件类似,为了便于后期维护,通常将菜单内容集中存储,如站点地图或XML文件等,然后通过使用数据源控件和TreeView控件关联来展示站点的导航层次结构。 【例7-12】演示TreeView控件绑定站点地图的方法。,参见示例第07章SiteMapDemoTreeViewSiteMap.aspx,TreeView控件除了与站点地图绑定外,同样也可以与XML文件进行绑定。 【例7-13】演示如何将TreeView控件绑定到一个XML文件。,参见示例第07章SiteMapDemoB
12、ooks.xml 和TreeViewXMLFile.aspx,7.7.2 带复选框的TreeView控件,在TreeView控件中,可以使用ShowCheckBoxes属性来允许用户进行多选,ShowCheckBoxes是一个TreeNodeTypes枚举类型的值,具有如下5个可选值:,TreeNodeTypes.All:为所有节点显示复选框; TreeNodeTypes.Leaf:为所有叶节点显示复选框; TreeNodeTypes.None:不显示复选框; TreeNodeTypes.Parent:为所有父节点显示复选框; TreeNodeTypes.Root:为所有根节点显示复选框。,【例7-14】演示如何使用ShowCheckBoxes属性进行多选,并显示出选择的结果。,参见示例第07章SiteMapDemoShowCheckBox.aspx,7.8 小结,站点地图 配置多个站点地图的方法 SiteMapPath控件显示站点地图 SiteMapDataSource控件的使用 Menu控件的使用 TreeView控件的使用,上机实训,详见本书第7章后实训7,请学生独立完成。,习题,详见本书第7章后习题部分,请学生独立完成。,本 章 结 束!,