0 votes

Comment faire une boucle en arrière de SiteMap.CurrentNode à SiteMap.RootNode ?

J'ai un plan Sitemap simple comme celui-ci à partir de asp:SiteMapDataSource :

Page 1 > Page 2 > Page 3

Je voudrais créer une boucle foreach en C# qui la génère au lieu d'utiliser asp:SiteMapPath parce que j'ai besoin d'y ajouter quelques exceptions. Maintenant, je n'arrive pas à comprendre comment faire une boucle en arrière de SiteMap.CurrentNode à SiteMap.RootNode ?

3voto

Richard Szalay Points 42486

La propriété que vous recherchez est SiteMapNode.ParentNode

SiteMapNode currentNode = SiteMap.CurrentNode;
SiteMapNode rootNode = SiteMap.RootNode;
Stack<SiteMapNode> nodeStack = new Stack<SiteMapNode>();

while (currentNode != rootNode)
{
    nodeStack.Push(currentNode);

    currentNode = currentNode.ParentNode;
}

// If you want to include RootNode in your list
nodeStack.Push(rootNode);

SiteMapNode[] breadCrumbs = nodeStack.ToArray();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X