在ASP.NET 2.0中建立站点导航层次(1)

  站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局。默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息。

  站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节。你可以使用API来编程访问应用程序的导航节点。

  导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图、菜单和breadcrumb("面包屑",一种显示当前所在页面的控件)。这些控件利用ASP.NET 2.0中的站点导航服务来检索你给站点定义的结构。SiteMapDataSource控件还允许你把其它UI控件绑定到站点导航数据。

  网站经常需要显示导航数据,来指导用户如何使用站点。ASP.NET中的导航特性允许开发者简单地定义导航数据,并根据这些信息来显示UI。

  站点导航API是一种用于访问站点导航数据的基于提供程序(provider)的编程内容。该API把导航数据存储在XML文件中,并通过一组SiteMapNode类来暴露这些数据。应用程序和控件开发者可以构建SiteMapNode实例并使用这些信息来显示导航界面。

  面向导航的服务器控件包括Menu、TreeView、SiteMapPath和SiteMapDataSource控件。这些控件都是建立在站点导航类的顶端的,它们使用和显示导航数据的时候都是不考虑数据存储的特定细节问题的。Menu和TreeView控件还可以使用XML文件的数据和XMLDataSource控件的数据。

  Url映射特性允许开发者为不同URL请求的重映射(re-mapping)定义简单的规则。

  使用站点导航控件

  Menu、TreeView、SiteMapPath和SiteMapDataSource控件根据导航数据生成导航界面。导航数据可以存储在XML文件中,或者利用站点导航特性的基于提供程序的能力来保存。下面的例子演示了如何组合使用站点导航特性的不同控件。

  建立应用程序站点地图

  示例的导航结构存放在Web.sitemap文件中,在下面你可以看到站点地图文件。Web.sitemap文件包含一个顶层的元素。在元素内至少嵌套一个元素。在一个站点地图内必须有一个顶层的。站点导航特性需要一个根来确保沿着节点层次的访问最终汇聚到一个已知的节点。你可以在根元素下嵌套多个元素。此外,嵌套元素的深度是没有限制的。

  一个元素通常包含Url(链接)、Title(标题)和Description(描述)属性。Url属性指明与应用程序中的页面对应的路径。它也可以包含其它应用程序中的页面的路径,或者指向完全不同的网站的多个URL。在下面的例子中,所有的Url属性都使用应用程序相对语法来引用路径。Title属性用于显示导航数据UI的文本内容。例如,SiteMapPath控件把Title属性作为控件的超链接文本显示。如果提供了Description属性,服务器控件就把显示为工具条提示或ALT文本。开发者也可以给添加自定义属性,利用SiteMapNode类的默认索引器(indexer)就可以检索这些属性了。你可以查阅.NET框架组件文档找到更多的关于元素其它一些属性的信息。

  Web.sitemap的内容

  以下是引用片段:
<siteMap>  
<siteMapNode title="Home" url="~/default.aspx" >  
<siteMapNode title="Introduction to ASP.NET" url="~/introduction/default.aspx">  
<siteMapNode title="What's New in Whidbey?" url="~/introduction/whatsnew.aspx"/>  
<siteMapNode title="Sample Applications (Starter Kits)" url="~/introduction/starterkits.aspx"/>  
<siteMapNode title="Introduction to Visual Web Developer" url="~/introduction/vwd.aspx"/>  
</siteMapNode>  
<siteMapNode title="Building A Web Application" url="~/development/default.aspx">  
<siteMapNode title="Building a Simple Application" url="~/development/simple/default.aspx">  
<siteMapNode title="Introduction to ASP.NET pages" url="~/development/simple/pages.aspx"/>  
……  
</siteMapNode>  
</siteMapNode>  
</siteMap> 

  使用站点导航控件

  在Web页面上提供站点导航的最简单办法就是使用图形化的站点导航控件(SiteMapPath、TreeView和 Menu)。

  · SiteMapPath--一个breadcrumb控件,它检索用户的当前页面并显示页面的层次结构。这让用户可以导航回层次中其它的页面。SiteMapPath只能与SiteMapProvider一起使用,需要设置控件的SiteMapProvider属性。

  · TreeView--在Web页面上提供垂直的用户界面,它可以展开和收缩选中的节点,也可以提供检查框功能以供用户选择数据项。TreeView控件支持宣告式的或编程设置数据元素和数据源控件。如果你使用SiteMapDataSource控件,那么数据绑定就是自动进行的。

  · Menu--提供水平的或垂直的用户界面,当用户把鼠标放在一项上的时候会弹出子菜单。Menu控件支持宣告式的或编程设置数据元素或数据源控件。如果你使用SiteMapDataSource控件,数据绑定就是自动进行的。

  请注意,TreeView和Menu控件都可以用于非导航的情形。

  下表描述了TreeView和Menu之间的差别,以便于你能根据需要做出适当的选择。

  特性 Menu TreeView

  扩展 弹出 位置扩展

  根据需要下载 No Yes

  检查框 No Yes

  模板 Yes No

  布局 水平 & 垂直 垂直

  Style选项 Yes Yes

  选择模式 静态的、 动态的层次 层次或父/根/叶,或按数据项

时间: 2024-08-02 22:48:28

在ASP.NET 2.0中建立站点导航层次(1)的相关文章

技巧:在ASP.NET 2.0中建立站点导航层次

asp.net|导航|技巧|站点 站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例

在ASP.NET 2.0中建立站点导航层次

asp.net|站点 站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜

在ASP.NET 2.0中建立站点导航层次(4)

显式表达式使开发者对包含本地资源的文件和资源键(resource key)的名称有更强的控制能力.在示例web.sitemap中,第一个元素使用了显式资源表达式.显式表达式在每个属性上指定.第一个元素的Title属性使用了显式表达式.显式表达式必须以$resource:开头.在这个标识符之后,开发者必须提供资源文件的根名称和资源键.开发者可以选择提供一个默认值.在例子中,表达式$resources: Title, MyTitle , Home表明提供程序应该查看以"Title"开头的资

在ASP.NET 2.0中建立站点导航层次(2)

在下面的例子中,你看到的TreeView和Menu控件为不同的区域和操作(例如NodeStyle和HoverNodeStyle)配置了一些样式属性.例子中的TreeView和Menu控件都连接到页面上的同一个SiteMapDataSource控件.SiteMapPath控件通过Web.config文件中设置的默认的SiteMapProvider来访问相同的数据. 以下是引用片段:<asp:treeview ID="TreeView1" ForeColor="White&

在ASP.NET 2.0中建立站点导航层次(5)

URL映射 URL映射特性利用web.config中存储的配置信息把收到的请求重映射(remap)到不同的URL.重映射发生在对请求的所有其它处理操作之前.下面的例子演示的是重映射一个页面请求,实际上任意文件类型都可以把请求重映射到不同的URL. 定义重映射URL URL映射的配置信息存储在web.config中.元素中嵌套的每个元素为重映射进入站点的(inbound)url定义了一条规则.url属性定义了进入站点的url的exact(原样)属性,URL映射特性会试图用它进行匹配操作.如果exa

在ASP.NET 2.0中建立站点导航层次(3)

站点导航的安全性 站点导航特性可以根据授权规则过虑提供程序所返回的SiteMapNode实例.XmlSiteMapProvider可以根据当前网站使用的文件和URL授权规则过虑节点. 下面的例子使用了窗体授权规则,预定义的用户凭证存储在web.config中.在global.asax中,根据用户名,用户的角色都被附加到当前的请求上.在web.config中,嵌套在元素之下的站点地图提供程序使用的元素的securityTrimmingEnabled属性被设置为真.同时,web.config文件的末

在ASP.NET 2.0中操作数据之三:创建母版页和站点导航_自学过程

导言 通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和导航体系.Asp.net 2.0引入的两个新特性给我们在统一站点的页面布局和站点导航上提供了简单而有效的工具,它们是母板页和站点导航.母板页允许开发者创建统一的站点模板和指定的可编辑区域.这样,aspx页面只需要给模板页中指定的可编辑区域提供填充内容就可以了,所有在母板页中定义的其他标记将出现在所有使用了该母板页的aspx页面中.这种模式允许开发者可以统一的管理和定义站点的页面布局,因此可以容易的得到拥有统一的视觉和感觉的页面并且

ASP.NET 2.0中层次数据的处理

asp.net|数据 数据源控件可以同时暴露平面表格式的或层次的数据.前面演示的SqlDataSource和ObjectDataSource控件都是平面表格式的数据源控件.ASP.NET 2.0还包含两个层次数据源控件:用于连接XML文件的XmlDataSource和用于连接站点导航数据的SiteMapDataSource.这一部分将介绍这些控件的使用技术. TreeView和Menu控件 数据绑定控件与数据源控件类似,也可以是层次的.表格式数据绑定控件显示数据列表或表格,层次数据绑定控件能够用

在ASP.NET 2.0中实现数据的绑定

ASP.NET的第一个版本就已经建立了一组新的数据库绑定控件.有了这些控件 的支持,数据的可视化和编辑就简单多了,其中一个最重要的控件就是DataGrid 控件.但是这个控件也有很多缺点.它为数据的排序,分页和编辑提供了一些内 置的功能,但必须手动实现. 而ASP.NET 2.0中采用了一种新的方式来解决以前版本的诸多问题, 并且提供了标准的功能.现在可以对任何数据源进行排序,分页和编辑----在大 多数情况下不需要输入任何代码.由于几乎所有的动态WEB程序都要考虑到与数据库的交互,幸运的是在A