關於ASP.NET中麪包屑(SiteMapPath控件)使用

一、根據站點地圖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控件):
<!--待續-->

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章