从父子关系中的Sitecore项目中获取所有孩子

时间:2015-05-06 11:48:48

标签: sitecore

以下代码应返回列表中的所有子项和子项,但它不保持父子关系的顺序。它首先返回所有父项,然后返回所有子项。

是否有可能以某种方式保持项目的顺序,并按照与Sitecore相同的顺序将它们放入列表中?

MainItem包含父子关系中的项目:

Item mainItem= Sitecore.Context.Database.GetItem(Settings.GetSetting("MainItem"));
mainItem.Axes.GetDescendants().ToList();

1 个答案:

答案 0 :(得分:6)

您可以递归地向列表添加项目:

public void AppendItems(List<Item> itemList, Item item)
{
    foreach(Item childItem in item.Children)
    {
        itemList.Add(childItem);
        AppendItems(itemList, childItem);
    }
}

用法:

var list = new List<Item>();
list.Add(rootItem);
AppendItems(list, rootItem);