页面导航

ASP.NET提供了以下三种导航控件:

  1.TreeView控件。

  2.Menu控件。

  3.SiteMapPath控件。

利用这三种导航控件与SiteMapDataSource控件相结合可以轻松实现优秀的页面导航功能。

TreeView控件 

TreeView控件的功能

TreeView控件以树型结构来对网站进行导航,支持的功能如下:

  1.数据绑定。允许控件的节点绑定到XML、表格或关系数据。

  2.站点导航。通过与SiteMapDataSource控件集成实现。

  3.节点文本既可以显示为纯文本也可以显示为超链接。

  4.借助编程方式访问TreeView对象模型以动态地创建树、填充节点、设置属性等。

  5.客户端节点填充。

  6.在每个节点旁显示复选框的功能。

  7.通过主题、用户定义的图象和样式可实现自定义外观。

TreeView控件的组成

TreeView控件由节点组成,树中的每一项都称为一个节点,它由一个TreeNode对象表示。节点有如下四种类型:

  1.父节点。包含其他节点。

  2.子节点。被其他节点包含。

  3.叶节点。不包含子节点。

  4.根节点。不被其他节点包含,同时是所有其他节点的上级节点。

  一个节点可以同时为父节点和子节点,但不能同时为根节点、父节点和叶节点。

TreeView控件的使用

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>

在Default.aspx中添加如下代码:

1 <div>
2         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
3         <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ImageSet="Contacts">
4             <ParentNodeStyle BackColor="Wheat" BorderColor="Violet" />
5             <HoverNodeStyle ForeColor="Yellow" />
6             <NodeStyle Font-Size="10px" ForeColor="Blue" />
7         </asp:TreeView>
8 </div>

Menu控件

Menu控件的功能

Menu控件以菜单的结构形式来对网站进行导航,可以采用水平方向或竖直方向的形式导航,它支持以下功能:

  1.通过与SiteMapDataSource控件集成提供对站点导航的支持。

  2.可以显示为可选择文本或超链接的节点文本。

  3.通过编程访问Menu对象模型,使程序员可以动态地创建菜单,填充菜单项以及设置属性等。

  4.能够采用水平方向或竖直方向的形式导航。

  5.支持静态或动态的显示模式。

用户单击菜单项时,Menu控件可以导航到所链接的网页或直接回发到服务器。如果设置了菜单项的NavigateUrl属性,则 Menu 控件导航到所链接的页;否则,该控件将页回发到服务器进行处理。

默认情况下,链接页与Menu控件显示在同一窗口或框架中。若要在另一个窗口或框架中显示链接内容,需使用Menu控件的Target属性。

Menu控件的组成

Menu控件由菜单项(由MenuItem对象表示)树组成。顶级(级别0)菜单项称为根菜单项。具有父菜单项的菜单项称为子菜单项。所有根菜单项都存储在Items集合中。子菜单项存储在父菜单项的ChildItems集合中。 每个菜单项都具有Text属性和Value属性。Text属性的值显示在Menu控件中,而Value 属性则用于存储菜单项的任何其他数据(如传递给与菜单项关联的回发事件的数据)。在单击时,菜单项可导航到NavigateUrl属性指示的另一个网页。

Menu控件的使用

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>

在Default.aspx中添加如下代码:

 1     <div>
 2         <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
 3         <asp:Menu ID="Menu1" runat="server" BackColor="Wheat" DataSourceID="SiteMapDataSource1" DynamicHorizontalOffset="4"
 4              Font-Size="X-Small" ForeColor="BlueViolet" StaticSubMenuIndent="6px">
 5             <StaticSelectedStyle BackColor="Window" />
 6             <StaticMenuStyle HorizontalPadding="3px" VerticalPadding="3px" ForeColor="Red" />
 7         </asp:Menu>
 8     </div>
 9     <div>
10         <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" />
11         <asp:Menu ID="Menu2" runat="server" BackColor="Wheat" DataSourceID="SiteMapDataSource1" DynamicHorizontalOffset="4"
12              Font-Size="X-Small" ForeColor="BlueViolet" StaticSubMenuIndent="6px" Orientation="Horizontal">
13             <StaticSelectedStyle BackColor="Window" />
14             <StaticMenuStyle HorizontalPadding="3px" VerticalPadding="3px" ForeColor="Red" />
15         </asp:Menu>
16     </div>

SiteMapPath控件

SiteMapPath控件显示一个导航路径,此路径为用户显示当前页的位置,并显示返回到主页的路径链接。

SiteMapPath控件包含来自站点地图的导航数据,此数据包括有关网站中页的信息,如URL、标题、说明和导航层次结构中的位置。

SiteMapPath由节点组成。路径中的每个元素均称为节点,用SiteMapNodeItem对象表示。

SiteMapPath包含如下几种节点类型:

  1.根节点,锚定节点分层组的节点。

  2.父节点,有一个或多个节点但不是当前节点的节点。

  3.当前节点,表示当前显示页的节点。

SiteMapPath控件的使用

新建站点地图文件Web.sitemap,代码如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 3     <siteMapNode url="~/Default.aspx" title="主页"  description="网站主页">
 4       <siteMapNode title="图书" description="图书内容">
 5         <siteMapNode title="C#" description="C#图书">
 6           <siteMapNode url="~/WebForm1.aspx" title="轻松学C#" description="轻松学C#"/>
 7           <siteMapNode url="~/WebForm2.aspx" title="深入浅出C#" description="深入浅出C#"/>
 8         </siteMapNode>
 9         <siteMapNode title="C语言" description="C语言图书">
10           <siteMapNode url="~/WebForm3.aspx" title="C语言程序设计" description="C语言程序设计"/>
11           <siteMapNode url="~/WebForm4.aspx" title="C语言课程设计" description="C语言程序设计"/>
12         </siteMapNode>
13         <siteMapNode title="C++" description="C++图书" >
14           <siteMapNode url="~/WebForm5.aspx" title="C++语言程序设计" description="C++语言程序设计"/>
15           <siteMapNode url="~/WebForm6.aspx" title="C++语言课程设计" description="C++语言课程设计"/>
16         </siteMapNode>
17       </siteMapNode>
18     </siteMapNode>
19 </siteMap>

站点文件创建完成后只需在页面中添加下面一行代码就可实现导航路径的显示。

1 <asp:SiteMapPath ID="SiteMapPath1" runat="server" />

时间: 2024-10-25 23:24:41

页面导航的相关文章

【REACT NATIVE 系列教程之五】NAVIGATOR(页面导航)的基本使用与传参

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2248.html 今天介绍一种应用开发中常用的负责页面切换及导航功能的组件:Navigator 一:Navigator 对于页面导航其实主要功能就是:每个页面都知道本身应该切换到哪个页面,并且切到的页面会记录从哪里来,如果要返回的话,知道返回到哪个页面.这一切都不需要再用逻辑管理!而且每个页面之间也可以进行参数传递,

【Win10】页面导航的实现

注:本文基于 Windows 10 10240 及其 SDK 编写,若以后有变化,请以新版本为准. 页面导航我们是再熟悉不过了,浏览器.手机 App 大多都使用这种方式来展示内容.在 Windows 10 应用商店应用当中,也是使用这种方式来展示内容.具体是通过 Frame 这个控件来进行导航展示. 在 App.xaml.cs 文件中,我们可以看到创建了一个 Frame: 并且在下面,使用 Navigate 方法导航到 App 的主页 MainPage. 导航到某个页面使用的就是 Navigat

响应式页面导航设计解析

有人说,2013将是响应式网页设计之年.自用户体验设计师Ethan Marcotte在2010年提出Responsive Web Design(RWD)的名词,即响应式网页设计,这个概念从Responsive Architecture延伸到web设计领域,让所有的交互设计.视觉.前端开发都开始投入到这个趋势,或者说新的设计解决方案中. 当自己和身边的朋友越来越多的用上了iPhone.iPad.android手机或平板,当越来越多的人都在谈论这个老意识新概念的话题,当我们一直秉承的用户体验第一与网

WinPhone学习笔记(一)——页面导航与页面相关

最近学一下Windows Phone(接下来简称“WinPhone”)的开发,在很久很久前稍探究一下WinPhone中对一些传感器的开发,那么现在就从头来学学WinPhone的开发.先从WinPhone的页面入手,在我印象中比较深刻的那番话:一台WinPhone设备就好比一个Web的浏览器,应用上每个界面就是一个网页,可以点击“后退”来返回之前的页面.这个类比我觉得相当的形象.这番话能引出WinPhone开发中一个比较常见的操作——页面导航,由这个页面导航还引出了别的方面的内容,如下面所示 那下

微信卡券功能商户后台卡券货架、最新页面导航等五项优化

微信卡券最近又更新了,汲取苹果产品的精髓,势必将简单化进行到底.微信卡券商户后台近日发布卡券货架.最新页面导航等五项新优化.具体调整如下: 一. 类目及资质调整: 1. 取消[其它]类目 申请时,若无对应类目可选,即你所属的行业暂未开放,请留意平台后续通知. 2. 新增/修改类目: 新增:车票.船票.水电煤缴费.有线电视缴费.货运.综合电商 修改:话费——话费/流量/宽带 3. 部分类目资质调整: 保健食品.酒类.母婴用品.足疗按摩: 另外,家政服务.机票.钟表眼镜.普通食品.药房/药店.化妆品

小程序配置单个页面导航栏的属性(微信小程序交流群:604788754)

配置单个页面导航栏的属性: 就在所要配置页面相对应的json文件中写入以下想要设置的属性: { "navigationBarBackgroundColor": "#ffffff",    "navigationBarTextStyle": "black",    "navigationBarTitleText": "小程序" } 属性只需要放在大括号里面即可,每个属性用逗号隔开. 如果不

WPF的页面导航

工作中之前接触过的WPF程序一直是使用TabControl作不同页面间的切换,每个Tab负责独立的功能,清晰简捷,所以一直就没有动力研究WPF自带的页面导航.(虽然接触过使用页面导航的WPF项目,也并没有去了解,而是似懂非懂地过去了.) 直到最近做的一个项目,用的还是TabControl,但在某个Tab里面,做的任务有些复杂,导致UI在操作前后会有很大的变化.很自然的想法就是在这个Tab中使用两个view(我并没有指明是UserControl还是Page),来回切换.然而粗略地调查了一下之后觉得

wp8.1 页面返回 页面导航

public The_second() public second() { this.InitializeComponent(); Frame frame = Window.Current.Content as Frame; frame.Navigating += Frame_Navigating;//请求新的页面导航是发生 } private void Frame_Navigating(objectsender,NavigatingCancelEventArgs e) { if (xxx参数)

wp8.1 Study1: 页面导航&amp;页面间值传递

摘要:wp8.1与wp8中很多API是不一样了,wp8.1把以前wp7.x时的api去掉了,更多与win8.1的API相似.比如以下的页面导航和页面之间的值传递 1.页面导航 利用Frame.Navigate() 方法,C#语句如下: 1 Frame.Navigate(typeof(Page2));//Page2为一个页面的名称 这里需要注意的是此方法是可以重载的,即后面介绍的页面间值传递方法. 2.页面间值传递 这里利用Frame.Navigate()重载方法,进行单个值传递和多个值传递 1)

构建基于WinRT的WP8.1 App 01:页面导航及页面缓存模式

本篇博文主要阐述基于Windows Runtime的Windows Phone 应用页面间导航相关知识,主要分为以下几个方面: Window.Frame和Page概览 页面间实现跳转 处理物理后退键 页面的缓存 Window.Frame和Page概览 基于WinRT的Windows Phone 8.1,每个App只有一个Window. 每个Window都有自己的Frame和导航栈, 以及自己的Page. Window中有一个Frame,并且100%撑满可视区域,通常Frame也是100%撑满Wi