关于ASP.NET中面包屑(SiteMapPath控件)使用

来源:互联网 发布:美工详情页思路 编辑:程序博客网 时间:2024/05/25 18:10
一、根据站点地图Web.sitemap来显示面包屑(SiteMapPath控件):
 
1.首先要创建一个站点地图Web.sitemap,最好在根目录下,如果已经创建,那么直接在里面增加你需要添加面包屑的节点就行。SiteMapPath控件由多个节点组成,节点可分为以下3个类型:根节点、父节点、当前节点。站点地图里可随意添加,多少都行,但是要理清节点的“父子关系”!Web.sitemap中的代码如下:
<?xml version="1.0" encoding="utf-8"?><!--以下是面包屑1  -->  <siteMap   xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"><siteMapNode url="~/Index.aspx" title="首页" description=""><siteMapNode url="~/Company.aspx" title="公司介绍" description="">      <siteMapNode url="~/1.aspx?" title="公司简介" description="" />      <siteMapNode url="~/2.aspx?" title="公司目标" description="" />  </siteMapNode> <siteMapNode url="~/New.aspx" title="新闻中心" description=""> </siteMapNode> <siteMapNode url="~/Pruduct.aspx" title="产品中心" description=""> </siteMapNode> <siteMapNode url="~/Project.aspx" title="项目中心" description=""> </siteMapNode> <siteMapNode url="~/Join.aspx?" title="招聘英才" description="" > </siteMapNode> <siteMapNode url="~/About.aspx?" title="联系我们" description="" ></siteMapNode><!--结束上面的面包屑1--> <!--不同aspx页面的面包屑2--><siteMapNode url="#" title="**" description=""><siteMapNode url="#" title="**" description="">            ......</siteMapNode>......</siteMapNode><!--结束上面的面包屑2--></siteMap>
注意:
a.如果在url 属性值中,列出了不存在的 URL 或列出了重复的 URL,将导致请求Web 应用程序将失败。
b.如果在url 属性值中,添加了相关参数(如:url=”Second.aspx?id=1″),也有可能导致请求Web 应用程序将失败。
c.在url 属性值中,可以“~/”快捷键开头,该快捷键表示应用程序根目录。
 
2.插入控件<asp:SiteMapPath>控件,代码是:
<asp:SiteMapPath ID="SiteMapPath1" runat="server"></asp:SiteMapPath>
只要在你需要添加面包屑的aspx文件的那个具体位置添加上以上这段代码就可以实现。
 
3.关于面包屑(SiteMapPath控件)的一些属性介绍:
我可以通过很多可用的属性来控制面包屑(SiteMapPath控件)的表示以及单个的链接。下面的列表提供了这其中一部分属性(更详细的属性参看MSDN):
PathSeparator:让你能够用其他的字符作为链接的分隔符,而不用默认的大于号(>)。
PathDirection:让你能够按照从左到右的顺序显示路径;也就是说,从当前结点开始,从该点向右移动(RootToCurrent),或者首先显示当前节点,向右显示到达根节点的路径(CurrentToRoot)。
RenderCurrentNodeAsLink:用来表示当前节点是否被作为一个链接显示出来。这是一个布尔值。
PathLevelsDisplayed:让你能够指定需要显示的结构的层数。
ShowToolTips:用来表示当鼠标移动到一个链接上时,是否显示工具提示信息。工具提示信息在网站地图文件的节点描述属性里定义。
如:
<!--样式1--> <asp:SiteMapPath ID="SiteMapPath1" Runat="server"> <PathSeparatorTemplate> <asp:Image ID="Image1" Runat="Server" Width="20" ImageUrl="uploadfiles/0022.GIF" /> </PathSeparatorTemplate> </asp:SiteMapPath> <!--样式2--> <asp:SiteMapPath ID="SiteMapPath2" Runat="server" PathDirection="CurrentToRoot" PathSeparator=" <-- " > </asp:SiteMapPath> <!--样式3--> <asp:SiteMapPath ID="SiteMapPath3" Runat="server" SkipLinkText="Skip Menu" RootNodeStyle-Font-Names="Verdana" RootNodeStyle-ForeColor="Orange" RootNodeStyle-BorderWidth=2 > </asp:SiteMapPath> <!--样式4--> <asp:SiteMapPath ID="SiteMapPath4" Runat="server" PathSeparator=" :: "> </asp:SiteMapPath> 
 
以下是关于一些网上资料的甄别:
 
1.网上有些资料说要配置Web.Config:
<system.web><siteMap defaultProvider="default" enabled="true"><providers><add name="default" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap" securityTrimmingEnabled="true"/></providers></siteMap></system.web><!--"defaultProvider="default"和"name="default""必须一样!siteMapFile="Web.sitemap"也不能少,不然程序找不到地图!-->
但是我发现我做这个项目的时候的开发环境(Visual Studio 2010)是不用的,不知道其他开发环境是不是也一样,也就写在这供大家参考咯。
 
2.网上有些资料说使用<asp:SiteMapDataSource>控件绑定数据,但是面包屑(SiteMapPath控件)有一个比较有意思的地方是,它不像Menu和TreeView控件那样需要使用SiteMapDataSource控件。 SiteMapPath控件在默认状态下与网站地图文件绑定在一起(也就是说它被放在应用程序的根里)。
 
二、在根站点地图中添加子站点地图文件来显示面包屑(SiteMapPath控件):
<!--待续-->