如何从SiteMap.CurrentNode向后循环到SiteMap.RootNode

时间:2009-04-09 07:38:21

标签: c# asp.net xml loops sitemap

我有一个像asp:SiteMapDataSource:

这样的简单Sitemap

第1页>第2页>第3页

我想在C#中创建foreach循环,而不是使用asp:SiteMapPath生成它,因为我需要添加一些例外。现在我无法弄清楚如何从SiteMap.CurrentNode向后循环到SiteMap.RootNode?

1 个答案:

答案 0 :(得分:3)

您要查找的媒体资源是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();