0
我想获得页面的计数节点一把umbraco网站与输出是这样的:一把umbraco计数活动内容页
- 根(9子节点)
- 第一个文件夹(4子节点)
- 文献1
- 文献2
- 文献3
- 文献4
- 第二个文件夹(3子节点)
- 文件1
- 文件2
- 文件3
- 第一个文件夹(4子节点)
基本上我想看看有多少的活动内容有一个特定的网站,并提出了一种分工的方法。有没有合理的方法来获取这些信息?
我想获得页面的计数节点一把umbraco网站与输出是这样的:一把umbraco计数活动内容页
基本上我想看看有多少的活动内容有一个特定的网站,并提出了一种分工的方法。有没有合理的方法来获取这些信息?
这为我工作:
Descendants.cs在App_Code文件夹
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.presentation;
using umbraco.presentation.nodeFactory;
public static class ExtensionMethods
{
public static IEnumerable<Node> AllDescendants(this Node node)
{
foreach (Node child in node.Children)
{
yield return child;
foreach (Node grandChild in child.AllDescendants())
yield return grandChild;
}
}
}
Razor视图
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@using umbraco.presentation.nodeFactory;
@{
Layout = "";
}
@functions{
public string CreateSitemap()
{
var temp = "<ul class='collapsibleList'>" + sitemap(-1) + "</ul>" + Environment.NewLine;
return temp;
}
public string sitemap(int nodeID)
{
var rootNode = new umbraco.presentation.nodeFactory.Node(nodeID);
var sitemapstring = "<li>" + rootNode.Name + " (" + rootNode.AllDescendants().Count() + ") <span style='font-size:9px'>" + rootNode.NodeTypeAlias + "</span></li>" + Environment.NewLine;
if (rootNode.Children.Count > 0)
{
sitemapstring += "<ul>" + Environment.NewLine;
sitemapstring = rootNode.Children.Cast<Node>().Aggregate(sitemapstring, (current, node) => current + sitemap(node.Id));
sitemapstring += "</ul>" + Environment.NewLine;
}
return sitemapstring;
}
}
<body>
@Html.Raw(CreateSitemap())
</body>
“活动” 在公开的? – 2014-10-10 13:12:25
是的。发布内容。 – ericdc 2014-10-10 17:55:18