2015-05-06 3 views
1

Следующий код должен возвращать все дочерние и дочерние элементы в списке, но он не поддерживает порядок отношения родитель-потомок. Сначала он возвращает все родительские элементы, а затем все дочерние элементы.Получить всех детей из элемента Sitecore в отношении родитель-ребенок

Возможно ли как-то сохранить порядок вещей и получить их в списке в том же порядке, что и в Sitecore?

MainItem содержит элементы в родитель-потомок связи:

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

ответ

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); 
Смежные вопросы