SiteMapNode
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="CatalogB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:BulletedList ID="bulPrimary" runat="Server" DataValueField="url" DataTextField="title" CssClass="bulHoriz" DataSourceID="primarySiteSource" DisplayMode="HyperLink" /> <asp:SiteMapDataSource ID="primarySiteSource" runat="server" ShowStartingNode="false" /> <div id="nodes"> <asp:HyperLink ID="lnkHome" runat="server" Text="Home" /> <asp:HyperLink ID="lnkPrev" runat="server" /> <asp:HyperLink ID="lnkNext" runat="server" /> <asp:HyperLink ID="lnkUp" runat="server" /> </div> </div> </form> </body> </html> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class CatalogB : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SiteMapNode current = SiteMap.CurrentNode; SiteMapNode root = SiteMap.RootNode; foreach (SiteMapNode node in root.ChildNodes) { string s = node.Title; } SiteMapNode parent = current.ParentNode; if (parent != null) { foreach (SiteMapNode nodeA in parent.ChildNodes) { string s = nodeA.Title; } } if (SiteMap.CurrentNode != null) { lnkHome.NavigateUrl = SiteMap.RootNode.Url; if (SiteMap.CurrentNode.PreviousSibling != null) { lnkPrev.NavigateUrl = SiteMap.CurrentNode.PreviousSibling.Url; lnkPrev.Text = "Previous (" + SiteMap.CurrentNode.PreviousSibling.Title + ")"; } else lnkPrev.Visible = false; if (SiteMap.CurrentNode.NextSibling != null) { lnkNext.NavigateUrl = SiteMap.CurrentNode.NextSibling.Url; lnkNext.Text = "Next (" + SiteMap.CurrentNode.NextSibling.Title + ")"; } else lnkNext.Visible = false; if (SiteMap.CurrentNode.ParentNode != null) { lnkUp.NavigateUrl = SiteMap.CurrentNode.ParentNode.Url; lnkUp.Text = "Up (" + SiteMap.CurrentNode.ParentNode.Title + ")"; } else lnkUp.Visible = false; } } } File: Web.sitemap <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="BookHome.aspx" title="Home" description="Return to home page"> <siteMapNode url="Catalog.aspx" title="Catalog" > <siteMapNode url="Categories.aspx" title="Categories" > <siteMapNode url="List.aspx?cat=1" title="Graphics" /> <siteMapNode url="List.aspx?cat=2" title="Internet" /> <siteMapNode url="List.aspx?cat=3" title="Networking" /> </siteMapNode> <siteMapNode url="Series.aspx" title="Series" > <siteMapNode url="List.aspx?series=1" title="Core Series" /> <siteMapNode url="List.aspx?series=2" title=".NET Series" /> <siteMapNode url="List.aspx?series=3" title="Signature Series"/> </siteMapNode> </siteMapNode> <siteMapNode url="Search.aspx" title="Search" /> <siteMapNode url="Help.aspx" title="Help" > <siteMapNode url="About.aspx" title="About Us" /> <siteMapNode url="Contact.aspx" title="Contact Us" /> </siteMapNode> </siteMapNode> </siteMap>