李春葆,ASP.NET 2.0动态网站设计教程
第7章 站点导航控件7.1 http://站点导航概述 7.2 站点地图 7.3 TreeView控件 7.4 Menu控件 7.5 SiteMapPath控件
李春葆,ASP.NET 2.0动态网站设计教程
7.1.1 站点导航的功能 若要为网站创建一致的、容易管理的导航解决方案,可以使用 http://站点导航。http://站点导航提供下列功能: 站点地图。可以使用站点地图描述站点的逻辑结构。接着通过 在添加或移除页面时修改站点地图(而不是修改所有网页的超 链接)来管理页导航。 http://导航控件。可以使用http://控件在网页上显示导 航菜单。导航菜单以站点地图为基础。 编程控件。可以以代码方式使用http://站点导航,以创建 自定义导航控件或修改在导航菜单中显示的信息的位置。 访问规则。可以配置用于在导航菜单中显示或隐藏链接的访问 规则。 自定义站点地图提供程序。可以创建自定义站点地图提供程序, 以便使用自己的站点地图后端(如存储链接信息的数据库), 并将提供程序插入到http://站点导航系统。
7.1 http://站点导航概述
李春葆,ASP.NET 2.0动态网站设计教程
7.1.2 站点导航的工作方式通过http://站点导航,可以按层次结构描述站点的布局。 例如,一个大学网站共有11页,其布局如下: 中华大学 院系设置 计算机学院 电子信息学院 数学学院 物理学院 职能部门 教务处 财务处 学生工作处 科技处
李春葆,ASP.NET 2.0动态网站设计教程
7.1.3 站点导航控件 创建一个反映站点结构的站点地图只完成了http://站点导 航系统的一部分。导航系统的另一部分是在http://网页中显示 导航结构,这样用户就可以在站点内轻松地移动。通过使用下列
http://站点导航控件,可以轻松地在页面中建立导航信息: TreeView:此控件显示一个树状结构或菜单,让用户可以遍 历访问站点中的不同页面。单击包含子节点的节点可将其展
开或折叠。 Menu:此控件显示一个可展开的菜单,让用户可以遍历访 问站点中的不同页面。将光标悬停在菜单上时,将展开包含 子节点的节点。 SiteMapPath:此控件显示导航路径(也称为面包屑或眉毛 链接)向用户显示当前页面的位置,并以链接的形式显示返 回主页的路径。此控件提供了许多可供自定义链接的外观的
李春葆,ASP.NET 2.0动态网站设计教程
7.2 站点地图站点地图是一种以.sitemap为扩展名的标准XML文件,主要为站点导航控件提供站点层次结构信息,默认名为 Web.sitemap。
李春葆,ASP.NET 2.0动态网站设计教程
例7.1 创建 一个表示下面所列大学网站层次结构的站点地 图. 中华大学 院系设置 计算机学院 电子信息学院 数学学院 物理学院 职能部门 教务处 财务处 学生工作处 科技处
李春葆,ASP.NET 2.0动态网站设计教程
namespace
web.sitemap站点地图
李春葆,ASP.NET 2.0动态网站设计教程
<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http:///AspNet/SiteMap-File-1.0" > <siteMapNode url="~/ch7/webform7-3.aspx" title="中南
大学" description=""> <siteMapNode url="~/ch7/school.aspx" title="院系设置" description=""> <siteMapNode url="~/ch7/school1.aspx" title="计算机学院" description="" /> <siteMapNode url="~/ch7/school2.aspx" title="电了信息学院" description="" /> <siteMapNode url="~/ch7/school3.aspx" title="数学学院" description="" /> <siteMapNode url="~/ch7/school4.aspx" title="物理学院" description="" /> </siteMapNode> <siteMapNode url="~/ch7/depart.aspx" title="职能部门" description=""> <siteMapNode url="~/ch7/depart~1.aspx" title="教务处" description="" /> <siteMapNode url="~/ch7/depart2.aspx" title="财务处" description="" /> <siteMapNode url="~/ch7/depart3.aspx" title="学生工作处" description="" /> <siteMapNode url="~/ch7/depart4.aspx" title="科技处" description="" /> </siteMapNode> </siteMapNode> </siteMap
李春葆,ASP.NET 2.0动态网站设计教程
站点地图是一个标准XML文件。其中,第一个标记用于 标识版本和编码方式,siteMap是站点地图根节点标记,包含 若干个siteMapNode子节点,一个siteMapNode子节点下又可 以包含若干个siteMapNode子节点,构成一种层次结构。 siteMapNode节点的常用属性如下表所示:属性 url title description key roles Provider siteMapFile 说明 设置用于节点导航的URL地址。在整个站点地图 文件中,该属性必须唯一 设置节点名称 设计节点说明文字 定义当前节点的关键字 定义允许查找该站点地图文件的角色集合,多个 角色可用分号(;)或逗号(,)分隔 定义处理其他站点地图文件的站点导航提供程序 名称,默认为XmlSiteMapProvider 设置包含其他相关SiteMapNode元素的站点地图文 件
李春葆,ASP.NET 2.0动态网站设计教程
7.3 TreeView控件TreeView控件又称为树形导航控件。它的显示类似于一棵横向 TreeView控件由节点组成。树中的每个项都称为一个节点,它 由一个TreeNode对象表示。节点类型的定义如下: 包含其他节点的节点称为父节点(ParentNode)。
的树,可以展开或折叠树的节点来分类查看、管理信息,非常直观。
被其他节点包含的节点称为子节点(ChildNode)。 没有子节点的节点称为叶节点(LeafNode)。 不被其他任何节点包含同时是所有其他节点的上级的节点是根 节点(RootNode)。
一个节点可以同时是父节点和子节点,但是不能同时为根节点、
父节点和叶节点。节点为根节点、父节点还是叶节点决定着节点的几种可视化属性和行为属性。
李春葆,ASP.NET 2.0动态网站设计教程
7.3.1 TreeNode类TreeView控件中一个节点就是一个TreeNode类对象。属性 Checked ChildNodes 说明 获取或设置一个值,该值指示节点的复选框是否被选中 获取TreeNodeCollection集合,该集合包含当前节点的第一级 子节点 获取节点的深度 获取或设置一个值,该值指示是否展开节点 获取或设置在节点旁边显示的图像
的工具提示文本 获取或设置节点旁显示的图像的URL 获取或设置单击节点时导航到的URL 获取当前节点的父节点 获取或设置一个值,该值指示是否选择节点 获取或设置一个值,该值指示是否在节点旁显示一个复选框 获取或设置用来显示与节点关联的网页内容的目标窗口或框架 获取或设置为TreeView控件中的节点显示的文本 获取或设置节点的工具提示文本 获取或设置用于存储有关节点的任何其他数据(如用于处理回 发事件的数据)的非显示值 获取从根节点到当前节点的路径
Depth Expanded ImageToolTip ImageUrl NavigateUrl Parent Selected ShowCheckBox Target Text ToolTip ValueValuePath
李春葆,ASP.NET 2.0动态网站设计教程
方法 Collapse CollapseAll Expand ExpandAll Select
说明 折叠当前树节点 折叠当前节点及其所有子节点 展开当前树节点 展开当前节点及其所有子节点 选择TreeView控件中的当前节点
ToggleExpandState 切换节点的展开和折叠状态
李春葆,ASP.NET 2.0动态网站设计教程
TreeNode类提供了以下构造函数: public TreeNode() public TreeNode (string text) public TreeNode (string text,string value) public TreeNode (string text,string value,string imageUrl) public TreeNode (string text,string value,string imageUrl, string navigateUrl,string target)
其中,参数text指定TreeView控件中的节点显示的文本。value指定与节点关联的补充数据,如用于处理回发事件的数 据。imageUrl指定节点旁显示的图像的URL。navigateUrl指 定单击节点时链接到的URL。target指定单击节点时用来显示 链接到的网页内容的目标窗口或框架。
李春葆,ASP.NET 2.0动态网站设计教程
7.3.2 TreeView控件的属性、方法和事件
1. TreeView控件的属性 (1)DataSourceID属性 该属性指定TreeView控件的数据源控件的ID属性。例如, 可以指定与XML文件绑定的XmlDataSource控件或与站点地图 绑定的SiteDataSource控件的ID。 (2)ExpandDepth属性 该属性获取或设置第一次显示TreeView控件时所展开的层 次数。例如,若该属性设为2,则将展开根节点及根节点下方紧 邻的所有子节点。 (3)SelectedNode属性 该属性返回用户从TreeView控件中选定的一个TreeNode对 象。例如,以下语句在标签Label1中显示选择节点的文本: Label1.Text="选择的节点是:" + TreeView1.SelectedNode.Text;
李春葆,ASP.NET 2.0动态网站设计教程
(4)Nodes属性 Nodes属性是TreeView控件中所有节点的集合,一个节 点是一个TreeNode对象。可以通过索引来表示Nodes集合中 的元素(索引从零开始),例如: TreeView1.Nodes表示TreeView1控件的所有节点集合。 TreeView1.Nodes[0]表示TreeView1控件中第一个根节点。 TreeView1.Nodes[0].ChildNodes表示TreeView1控件中 第一个根节点的子节点集合。 TreeView1.Nodes[0].ChildNodes[1]表示TreeView1控件 中第一个根节点的第2个子节点。
李春葆,ASP.NET 2.0动态网站设计教程
2. TreeView控件的方法 方法 ExpandAll FindNode 说明
打开树中的每个
节点 检索TreeView控件中指定值路径处的 TreeNode对象