2009-06-16 12 views

Répondre

2

Si vous connaissez le nombre exact de niveaux que vous pouvez utiliser un SiteMapPath comme:

<asp:SiteMapPath runat="server" ParentLevelsDisplayed="1" /> 

Sinon, le SiteMapPath va toujours Agains direcly le SiteMapProvider actuellement en cours d'utilisation et vous pouvez probablement accrocher dans le rendu de l'un SiteMapPath faire une vérification, comme:

protected void SiteMapPath_ItemCreated(object sender, SiteMapNodeItemEventArgs e) 
{ 
    if (e.Item.ItemType == SiteMapNodeItemType.Root ||   
     (e.Item.ItemType == SiteMapNodeItemType.PathSeparator && 
     e.Item.ItemIndex == 1)) 
    { 
     e.Item.Visible = false; 
    } 
} 

qui vous fera SITEMAPPATH ne pas montrer l'rootNode (et le premier séparateur).

et si vous désirez votre noeud pour afficher « Home », vous pouvez lier contre une autre valeur, quelque chose comme:

<asp:SiteMapPath ID="siteMapPath" runat="server" 
    Pathseparator="/" 
    OnItemCreated="SiteMapPath_ItemCreated"> 

<NodeTemplate> 
    <a href='<%# Eval("url") %>'><%# Eval("description") %></a> 
</NodeTemplate> 

<CurrentNodeTemplate> 
    <%# Eval("title") %> 
</CurrentNodeTemplate>  

</asp:SiteMapPath> 

si la description a une valeur de « Home » qui sera affiché.

+0

je ne connais pas le nombre exact de niveaux comment puis-je supprimer seulement l'élément racine seul? –

0

Récemment, j'ai créé deux nouvelles commandes de menu qui traitent de ce problème. Mes contrôles acceptent le ~ Variation/jeton personnalisé en tant que StartingNode afin que vous puissiez créer un fil d'Ariane qui commence par le lieu de votre variante plutôt que par la racine de votre collection de sites. Vous pouvez trouver plus d'informations @http://blog.mastykarz.nl/templates-based-menu-control-sharepoint/