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