Using the SiteMap Class : Site Maps « Development « ASP.NET Tutorial






Under the covers, the SiteMapDataSource control represents the contents of the SiteMap class. 


File: Global.asax

<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">

    void Application_Start(Object sender, EventArgs e)
    {
         SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
    }

    SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
    {
        if (SiteMap.CurrentNode == null)
        {
            string url = e.Context.Request.Path;
            string title = Path.GetFileNameWithoutExtension(url);
            SiteMapNode newNode = new SiteMapNode(e.Provider, url, url, title);
            newNode.ParentNode = SiteMap.RootNode;
            return newNode;
        }
        return SiteMap.CurrentNode;
    }
</script>

File: Web.sitemap


<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode
  url="Default.aspx"
  title="Home"
  description="The Home Page">
  <siteMapNode
    url="Default1.aspx"
    title="Our Products"
    description="Products that we offer">
    <siteMapNode
      url="FirstProduct.aspx"
      title="First Product"
      description="The description of the First Product" />
    <siteMapNode
      url="SecondProduct.aspx"
      title="Second Product"
      description="The description of the Second Product" />
  </siteMapNode>
  <siteMapNode
    url="Default2.aspx"
    title="Our Services"
    description="Services that we offer">
    <siteMapNode
      url="FirstService.aspx"
      title="First Service"
      description="The description of the First Service"
      metaDescription="The first service" />
    <siteMapNode
      url="SecondService.aspx"
      title="Second Service"
      description="The description of the Second Service" />
  </siteMapNode>
</siteMapNode>
</siteMap>








9.40.Site Maps
9.40.1.Defining a Site Map
9.40.2.The SiteMapPath control enables you to navigate to any parent page of the current page.
9.40.3.Format SiteMapPath
9.40.4.Using a template with the SiteMapPath control.
9.40.5.Using the SiteMap Class
9.40.6.Adding nodes to a Site Map dynamically.
9.40.7.Using the SiteMapNode Class
9.40.8.To display different links to different users depending on their roles, enable the Security Trimming
9.40.9.Merging Multiple Site Maps
9.40.10.Creating Custom Site Map Attributes
9.40.11.Creating the AutoSiteMapProvider
9.40.12.Displaying an automatically generated Site Map.
9.40.13.Removing the root node from the retrieved node collection
9.40.14.using the StartFromCurrentNode property
9.40.15.Using the StartingNodeUrl property
9.40.16.Working with the CurrentNode object (C#)
9.40.17.Working with the CurrentNode object (VB)
9.40.18.Creating a custom navigation display using the CurrentNode property (C#)
9.40.19.Creating a custom navigation display using the CurrentNode property (VB)