C# 如何从SiteMap.CurrentNode向后循环到SiteMap.RootNode
我从asp:SiteMapDataSource获得了一个简单的站点地图: 第1页>第2页>第3页C# 如何从SiteMap.CurrentNode向后循环到SiteMap.RootNode,c#,asp.net,xml,loops,sitemap,C#,Asp.net,Xml,Loops,Sitemap,我从asp:SiteMapDataSource获得了一个简单的站点地图: 第1页>第2页>第3页 我想在C#中创建foreach循环,生成该循环以使用asp:SiteMapPath,因为我需要向它添加一些异常。现在我不知道如何从SiteMap.CurrentNode向后循环到SiteMap.RootNode?您要查找的属性是 SiteMapNode currentNode=SiteMap.currentNode; SiteMapNode rootNode=SiteMap.rootNode; 堆栈
我想在C#中创建foreach循环,生成该循环以使用asp:SiteMapPath,因为我需要向它添加一些异常。现在我不知道如何从SiteMap.CurrentNode向后循环到SiteMap.RootNode?您要查找的属性是
SiteMapNode currentNode=SiteMap.currentNode;
SiteMapNode rootNode=SiteMap.rootNode;
堆栈节点堆栈=新堆栈();
while(currentNode!=rootNode)
{
nodeStack.Push(当前节点);
currentNode=currentNode.ParentNode;
}
//如果要在列表中包括RootNode
nodeStack.Push(rootNode);
SiteMapNode[]breadCrumbs=nodeStack.ToArray();
您要找的房产是
SiteMapNode currentNode=SiteMap.currentNode;
SiteMapNode rootNode=SiteMap.rootNode;
堆栈节点堆栈=新堆栈();
while(currentNode!=rootNode)
{
nodeStack.Push(当前节点);
currentNode=currentNode.ParentNode;
}
//如果要在列表中包括RootNode
nodeStack.Push(rootNode);
SiteMapNode[]breadCrumbs=nodeStack.ToArray();
谢谢你的工作。但是,当输出从当前节点开始而不是从根节点开始时,如何反转此循环?使用堆栈,并将()每个节点推送到堆栈上。然后Stack.ToArray()将按照您要查找的顺序返回一个数组。顺便说一句,如果这已经回答了您的问题,您可以单击左侧的勾号,以防止问题出现在网站的“未回答的问题”区域。谢谢。但是,当输出从当前节点开始而不是从根节点开始时,如何反转此循环?使用堆栈,并将()每个节点推送到堆栈上。然后Stack.ToArray()将按照您要查找的顺序返回一个数组。顺便说一句,如果这已经回答了您的问题,您可以单击左侧的勾号,以防止问题出现在网站的“未回答的问题”区域中。
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();