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" />
新聞熱點
疑難解答