2009-06-23 9 views
2

J'essaie de faire un menu basé sur un sitemap asp.net. Comment imbriquez-vous les noeuds du sitemap afin qu'ils apparaissent tous au même niveau. Voici ce que j'ai:Comment créer un menu basé sur un sitemap dans asp.net avec des éléments de niveau supérieur?

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
<siteMapNode> 

    <siteMapNode url="~/Default.aspx" title="Home" description="link to Home" /> 
    <siteMapNode url="~/about.aspx" title="About" description="abot" /> 

</siteMapNode> 

</siteMap> 

Voici ce que le code pour le contrôle du menu ressemble:

<asp:Menu ID="Menu1" runat="server" BackColor="#E3EAEB" 
     DataSourceID="SiteMapDataSource1" 
    </asp:Menu> 

Ils ont tous deux apparaissent comme des éléments de 2e rang en dessous d'une flèche. Désolé pour la question débutant mais je n'ai jamais utilisé le contrôle du menu avant.

+0

Pouvez-vous envoyer votre code de commande de menu? Ceux-ci semblent être tous des nœuds supérieurs! Aucun d'entre eux n'a d'enfants. Je me demande à quoi ressemble votre balisage ASP. –

+0

C'est ce qui m'a dérouté aussi! Je l'ai édité avec le code de contrôle. – patricksweeney

Répondre

4

Vous avez juste besoin de définir les StaticDisplayLevels et avoir seulement un niveau dans le fichier sitemap.

<asp:Menu runat="server" DataSourceID="SiteMapDataSource" StaticDisplayLevels="2" > 
</asp:Menu> 

Un exemple de web.sitemap:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode> 
     <siteMapNode url="Default.aspx" title="Home" description="" /> 
     <siteMapNode url="Page2.aspx" title="Page2" description="" /> 
    </siteMapNode> 
</siteMap> 
Questions connexes