【参考】ASP.NET Web Forms - 导航


ASP.NET 带有内建的导航控件。


网站导航

维护大型网站的菜单是困难而且费时的。

在 ASP.NET 中,菜单可存储在文件中,这样易于维护。文件通常名为 web.sitemap,并且被存放在网站的根目录下。

此外,ASP.NET 有三个心的导航控件:

  • Dynamic menus
  • TreeViews
  • Site Map Path

Sitemap 文件

在本教程中,使用下面的 sitemap 文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<siteMap>

<siteMapNode title="Home" url="/aspnet/w3home.aspx">

<siteMapNode title="Services" url="/aspnet/w3services.aspx">

<siteMapNode title="Training" url="/aspnet/w3training.aspx"/>

<siteMapNode title="Support" url="/aspnet/w3support.aspx"/>

</siteMapNode>

</siteMapNode>
</siteMap>

创建 sitemap 文件的规则:

  • XML 文件必须包含 围绕内容的 <siteMap> 标签
  • <siteMap> 标签只能有一个 <siteMapNode> 子节点( "home" 页面)
  • 每个 <siteMapNode> 可以有多个子节点(网页)
  • 每个 <siteMapNode> 带有定义页面标题和 URL 的属性

注释:sitemap 文件必须位于站点根目录下,URL 属性必须相对于该根目录。


动态菜单

<asp:Menu> 控件可显示标准的站点导航菜单。

代码实例:

<asp:SiteMapDataSource id="nav1" runat="server" />

<form runat="server">
<asp:Menu runat="server" DataSourceId="nav1" />
</form>

上面实例中的 <asp:Menu> 控件是一个供服务器创建导航菜单的占位符。

控件的数据源由 DataSourceId 属性定义。
id="nav1" 把数据源连接到 <asp:SiteMapDataSource> 控件。

<asp:SiteMapDataSource> 控件自动连接默认的 sitemap 文件(web.sitemap)。


TreeView

<asp:TreeView> 控件可显示多级导航菜单。

这种菜单看上去像一棵带有枝叶的树,可通过 + 或 - 符号来打开或关闭。

代码实例:

<asp:SiteMapDataSource id="nav1" runat="server" />

<form runat="server">
<asp:TreeView runat="server" DataSourceId="nav1" />
</form>

上面实例中的 <asp:TreeView> 控件是一个供服务器创建导航菜单的占位符。

控件的数据源由 DataSourceId 属性定义。
id="nav1" 把数据源连接到 <asp:SiteMapDataSource> 控件。

<asp:SiteMapDataSource> 控件自动连接默认的 sitemap 文件(web.sitemap)。


SiteMapPath

SiteMapPath 控件可显示指向当前页面的指针(导航路径)。该路径显示为指向上级页面的可点击链接。

与 TreeView 和 Menu 控件不同,SiteMapPath 控件不使用 SiteMapDataSource。SiteMapPath 控件默认使用 web.sitemap 文件。

提示:如果 SiteMapPath 没有正确显示,很可能是由于 web.sitemap 文件中存在 URL 错误(打印错误)。

代码实例:

<form runat="server">
<asp:SiteMapPath runat="server" />
</form>

上面实例中的 <asp:SiteMapPath> 控件是一个供服务器创建导航菜单的占位符。

ASP.NET Web Forms - 网站导航(Sitemap 文件)的更多相关文章

  1. 【翻译】使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定

    原文地址:http://www.dotnetjalps.com/2013/05/Simple-data-binding-with-Knockout-Web-API-and-ASP-Net-Web-Fo ...

  2. Asp.Net学习进度备忘(第一步:ASP.NET Web Forms)

    书签:“Web Pages”和“MVC”跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1.ASP. ...

  3. Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定

    使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定   原文地址:http://www.dotnetjalps.com/2013/05/Simple-da ...

  4. ASP.NET Web Forms 4.5的新特性

    作者:Parry出处:http://www.cnblogs.com/parry/ 一.强类型数据控件 在出现强类型数据控件前,我们绑定数据控件时,前台一般使用Eval或者DataBinder.Eval ...

  5. 在ASP.NET Web Forms中用System.Web.Optimization取代SquishIt

    将一个ASP.NET Web Forms项目从.NET Framework 4.0升级至.NET Framework 4.5之后,发现SquishIt竟然引发了HTTP Error 500.0 - I ...

  6. ASP.NET Web Application中使用链接文件

    最近重构一个内部的平台系统,作为一个平台,其下有几个子系统,每个子系统有自己的网站系统.而每个网站使用的是统一的风格,统一的验证机制,反馈系统,等等.所以,为了避免几个子系统中重复出现相同的资源或文件 ...

  7. [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package

    本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...

  8. Using Friendly URLs in ASP.NET Web Forms

    Introduction Websites often need to generate SEO friendly URLs. In ASP.NET Web Forms applications, a ...

  9. ASP.NET Web Forms的改进

    虽然ASP.NET Web Forms不是vNext计划的一部分,但它并没有被忽视.作为Visual Studio 2013 Update 2的一部分,它重新开始支持新工具.EF集成和Roslyn. ...

随机推荐

  1. JAVA笔记--static

    1.static 修饰变量 public class MyClass { static int i = 4; } 其中static 修饰变量,表示变量 i 属于 MyClass 类,所有的对象共享一个 ...

  2. python系统编程(五)

    多线程-threading python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用 1. 使用threading模块 ...

  3. Conscription [POJ3723] [最小生成树]

    Description: Windy有一个国家,他想建立一个军队来保护他的国家. 他召集了N个女孩和M男孩,想把他们雇佣成为他的士兵. 要无偿雇佣士兵,必须支付10000元. 女孩和男孩之间有一些关系 ...

  4. UVALive - 4885 Task 差分约束

    Task 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page ...

  5. Python中关于列表排序并保留id/enumerate()使用方法

    新手才开始写博客,不周之处请原谅,有错误请指正. >>> a = [1,4,2,5,3]>>> b = sorted(enumerate(a),key = lamb ...

  6. diff比较两个文件 linux

    功能:比较两个文件的差异,并把不同地方的信息显示出来.默认diff格式的信息. diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的补丁文件.也使用patch命令对 ...

  7. PowerBI发布到网页

    如果网页当中需要嵌入PowerBI的报表,可以在PowerBI当中生成链接,然后网页或者博客当中插入这一段html代码. 以下是PowerBI生产网页链接的示例,并且在博客的最后也插入了PowerBI ...

  8. Java Web 清除缓存

    res.setHeader("Cache-Control", "no-cache"); res.setHeader("Pragma", &q ...

  9. flink 有状态udf 引起血案一

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/rlnLo2pNEfx9c/article/details/83422587 场景 近期在做一个画像的 ...

  10. OHDSI——数据标准化

    Home › Data Standardization Data Standardization Data standardization is the critical process of bri ...