I'm new to asp.net and one thing I have been struggling to understand the web.sitemap and navigation controls for several days.
Here is the problem. I have created my sitemap file and I want to create three individual menus...i.e. a top navigation bar, a main navigation bar and a left navigation bar.
Here is a url to see the exact three menus I am trying to create from the sitemap file:
http://www.compasslearning.com/about_us/index.asp
Is there a way to filter a sitemap file?
For example, if I create the following user control:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="TopNavigationBar.ascx.cs" Inherits="UserControls_TopNavigationBar" %>
<asp:Repeater runat="server" ID="siteMapAsBulletedList" DataSourceID="SiteMapDataSource1">
<HeaderTemplate>
[list]
<li><asp:HyperLink runat="server" ID="lnkHome" NavigateUrl='<%# SiteMap.RootNode.Url %>' Text='<%# SiteMap.RootNode.Title %>'></asp:HyperLink></li>
</HeaderTemplate>
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Title") %>'></asp:HyperLink>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<asp:SiteMapDataSource ShowStartingNode="false" ID="SiteMapDataSource1" runat="server" />
Here is my web.sitemap file:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/index.aspx" title="Home">
<siteMapNode url="~/about_us/index.aspx" title="About Us">
<siteMapNode url="~/about_us/mediaroom.aspx" title="Media Room" />
<siteMapNode url="~/about_us/awards.aspx" title="Awards" />
<siteMapNode url="~/about_us/employment.aspx" title="Employment Opportunities" />
<siteMapNode url="~/about_us/events.aspx" title="Trade Show Calendar" />
<siteMapNode url="~/about_us/partners.aspx" title="Partners and Alliances" />
<siteMapNode url="~/about_us/wrcmedia.aspx" title="WRC Media" />
</siteMapNode>
<siteMapNode url="~/contact.aspx" title="Contact Us" />
<siteMapNode url="http://support.compasslearning.com" title="Customer Support" />
<siteMapNode url="~/sitemap.aspx" title="Site Map" />
<siteMapNode url="~/technology/index.aspx" title="Technology">
<siteMapNode url="~/technology/subscription.aspx" title="Odyssey Subscription" />
<siteMapNode url="~/technology/hosted.aspx" title="Odyssey Hosted" />
<siteMapNode url="~/technology/enterprise.aspx" title="Odyssey Enterprise" />
</siteMapNode>
<siteMapNode url="~/research/index.aspx" title="Research" />
<siteMapNode url="~/assessment/index.aspx" title="Assessment">
<siteMapNode url="~/assessment/custom.aspx" title="Custom Assessment" />
<siteMapNode url="~/assessment/explorer.aspx" title="CompassLearning Explorer" />
</siteMapNode>
<siteMapNode url="~/curriculum/index.aspx" title="Curriculum">
<siteMapNode url="~/curriculum/prek.aspx" title="Pre-K" />
<siteMapNode url="~/curriculum/reading.aspx" title="Reading/Language Arts" />
<siteMapNode url="~/curriculum/writing.aspx" title="Writing" />
<siteMapNode url="~/curriculum/math.aspx" title="Mathematics" />
<siteMapNode url="~/curriculum/spanmath.aspx" title="Matemáticas" />
<siteMapNode url="~/curriculum/science.aspx" title="Science" />
<siteMapNode url="~/curriculum/socialstudies.aspx" title="Social Studies" />
<siteMapNode url="~/curriculum/crosscurricular.aspx" title="Cross Curricular" />
<siteMapNode url="~/curriculum/ell.aspx" title="English Language Learners" />
<siteMapNode url="~/curriculum/specialneeds.aspx" title="Children with Spcial Needs" />
<siteMapNode url="~/curriculum/secondary.aspx" title="Secondary" />
</siteMapNode>
<siteMapNode url="~/data_management/index.aspx" title="Data Management">
<siteMapNode url="~/data_management/students.aspx" title="Managing Students" />
<siteMapNode url="~/data_management/standards.aspx" title="Managing Standards" />
<siteMapNode url="~/data_management/reporting.aspx" title="Managing Reporting" />
</siteMapNode>
<siteMapNode url="~/services/index.aspx" title="Services">
<siteMapNode url="~/services/custservice.aspx" title="Customer Service" />
<siteMapNode url="~/services/implementservice.aspx" title="Implementation Services" />
<siteMapNode url="~/services/supportplan.aspx" title="Annual Support Plans" />
<siteMapNode url="~/services/options.aspx" title="More Options" />
<siteMapNode url="~/services/prodev.aspx" title="Professional Development" />
</siteMapNode>
<siteMapNode url="~/results/index.aspx" title="Results">
<siteMapNode url="~/results/research.aspx" title="Product Research" />
<siteMapNode url="~/results/achievement.aspx" title="Achievement Results" />
</siteMapNode>
</siteMapNode>
</siteMap>
The menu displays the following:
Home | About Us | Contact Us | Customer Support | Site Map | Technology | Research | Assessment | Curriculum | Data Management | Services | Results
I want to filter the menu so it only displays:
Home | About Us | Contact Us | Customer Support | Site Map
I'm going to have other menus on my page...i.e. a left navigation bar and a main navigation bar, which I would want to display different nodes than the top navigation.
I haven't been able to figure out how to filter out the specific nodes I want to include in each menu.
Is the sitemap structure incorrect. Is this possible to do with the sitemap? Is there another method to achieve this? I'm not sure where I'm going wrong.
Any help is greatly appreciated.
Thank you.