【问题标题】:Get Collection after traversing in Umbraco在 Umbraco 穿越后获得收藏
【发布时间】:2013-05-30 11:00:57
【问题描述】:

这是我的项目文件夹结构到树形结构中

(*)Root
     []English
            [1]Novel
            [2]Thriller
                    [2.1]Happy
                              [2.1.1]Life Happy
                                           HappyInLife
                                           LoveInLife
                              [2.1.2]Joy
                                           everywhereJoy
                              [2.1.3]Lauging
                                           Always
                                           Sometimes
                                           Never
                    [2.2]Sad
                    [2.3]Excited
                    [2.4]Alone
            [3]Love Story
            [4]Action
     []Hindi
     []Marathi

现在在上面的结构中,我在节点 [2.4]Alone 我想遍历节点[2.1]Happy。此外,我想访问节点 [2.1] Happy 的所有 children 、 sub children 和 sub ....。

我的项目要求是从节点 [2.4]Alone

显示节点 [2.1]Happy 及其所有子节点和子子节点等等......

到目前为止我的工作(我在节点 [2.4]Alone)

var home=@Model.Parent.Children.First();

所以 home 里面会有节点 [2.1]Happy 。 但问题是它只会给我 [2.1]Happy 的孩子,而不是它的孩子的孩子等等......

我厌倦了使用 @Model.AncestorsOrSelf(3); 但无法实现我的目标。

感谢任何帮助

【问题讨论】:

  • 我认为您需要使用 .Descendants() 或 .Descendants("docTypeAliasHere")。这将为您提供一个节点下的所有内容(如孩子、孙子、孙子的孩子等等)。确保您知道自己在做什么,因为 .Descendants() 对于您的示例来说是可以的,但如果您有一个节点下有 5000 个项目,它会使速度跪下求饶。

标签: c# umbraco umbraco5


【解决方案1】:

我建议使用 uQuery:(1)(2)

代码如下:

@using umbraco

var current = umbraco.NodeFactory.Node.GetCurrent();
var your21Happy = current.Parent.GetChildNodes().First(); // or the way you was getting it already.
var descendants = your21Happy.GetDescendantNodes();

uQuery 非常灵活,您可以按任何方式过滤查询的节点,例如

.GetDescendantNodesByType("uBlogsyPost")

.GetDescendantNodes(x => x.WriterName == "admin")

等等

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多