如何使用Umbraco的Multinode Treepicker显示节点数据?

时间:2015-07-10 02:47:02

标签: razor umbraco umbraco7

我已经查看了此属性类型的documentation,并尝试了一些我从论坛中提取的方法,但我真的根本不理解它。它似乎与我迄今使用的其他所有房产类型有很大不同。我需要一个与实际相关的例子。

这是我与之合作的内容。我有一个页面显示foreach循环中的日志列表。这些日志本身是Umbraco中的节点,附带PDF,摘要,日期和多节点树选择器,允许您选择日志中涉及的人员。我想显示在树选择器中选择的节点的名称。

我的代码看起来像这样(删除了所有无关的,已经工作的属性):

    @{
        var LogsMonthNode = Model.Content.AncestorOrSelf("LogListing");
    }
    @foreach (var node in LogsMonthNode.Children.Where("Visible"))
    {
        <h1 id="#">@node.AsDynamic().Name</h1> <!--This is the log's name.-->
        Starring: <!-- Here is where I want a foreach loop (I assume) that basically says "display the .Name of each node in the treepicker"-->
    }

我的多节点树拾取器被称为&#34;字符&#34;。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:2)

多节点树选取器只保存选中的项目的节点ID作为逗号分隔的字符串。要从中获取属性,您需要首先从节点ID获取实际节点,如下所示。我假设您的LogsMonthNode个节点的子节点具有选定节点的多节点树选择器属性并进行相应的写入。

@{
    var LogsMonthNode = Model.Content.AncestorOrSelf("LogListing");
}
@foreach (var node in LogsMonthNode.Children.Where("Visible"))
{
    <h1 id="#">@node.AsDynamic().Name</h1> <!--This is the log's name.-->
    foreach (var item in Umbraco.TypedContent(node.GetPropertyValue<string>("characters").Split(',')))
    //get nodes, split ids and get content from umbraco for each id
    {
        if (item != null)
        {                    
            <h2>@item.Name</h2>
        }

    }
}