Set the dispay levels in a Menu control : Web.sitemap « Sitemap « ASP.Net






Set the dispay levels in a Menu control


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="TemplatedMenu2" %>
<!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" xml:lang="en">
<head id="Head1" runat="server">
</head>
<body>
   <form id="form1" runat="server">
   <div id="container">
      <asp:Menu id="menuPrimary" 
                runat="server" 
                DataSourceID="siteSource" 
                Orientation="Horizontal" 
                StaticDisplayLevels="1"  
                StaticEnableDefaultPopOutImage="false"
                MaximumDynamicDisplayLevels="1">
         <StaticItemTemplate>
            <asp:button ID="btnItem" runat="server" 
               Text='<%# Eval("Text") %>' 
               PostBackUrl='<%# Eval("NavigateUrl") %>'

               Width="150" />
         </StaticItemTemplate>
         <DynamicMenuStyle CssClass="dynamicMenu"/> 
         <DynamicItemTemplate>
            <asp:hyperlink ID="imgbtnItem" runat="server" 
               NavigateUrl='<%# Eval("NavigateUrl") %>'
               ToolTip='<%# Eval("Text") %>' />
            <asp:hyperlink ID="lnkItem" runat="server" 
               Text='<%# Eval("Text") %>' 
               NavigateUrl='<%# Eval("NavigateUrl") %>' />
         </DynamicItemTemplate>
      </asp:Menu>        
      <asp:SiteMapDataSource ID="siteSource" 
                             runat="server" 
                             ShowStartingNode="false"  
                             StartingNodeUrl="Catalog.aspx"/>
   </div>
   </form>
</body>
</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 TemplatedMenu2 : System.Web.UI.Page
{
   protected void btnItem_Command(object sender, CommandEventArgs e)
   {
      string url = e.CommandName;
      Response.Redirect(url);
   }
}

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>

 








Related examples in the same category

1.An example of a Web.sitemap file
2.Using the Web.sitemap file with a SiteMapPath server control
3.Changing the PathSeparator value
4.Adding style to the PathSeparator property
5.Using an image as the separator
6.Creating a basic .sitemap file for localization
7.Use different site maps as well as the ability to choose a site map
8.Display Levels
9.TreeView ImageSets
10.SiteMapNode
11.BulletedList SiteMapDataSource Consumer