从父子关系中的 Sitecore 项目中获取所有子项
Get the all the children from a Sitecore item in a parent-child relation
下面的代码应该return 列表中的所有子项和子项,但它没有保持父子关系的顺序。它 return 首先是所有父项,然后是所有子项。
是否有可能以某种方式保持项目有序,并以与在 Sitecore 中相同的顺序将它们放入列表中?
MainItem
包含父子关系中的项目:
Item mainItem= Sitecore.Context.Database.GetItem(Settings.GetSetting("MainItem"));
mainItem.Axes.GetDescendants().ToList();
您可以递归地将项目添加到列表中:
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);
下面的代码应该return 列表中的所有子项和子项,但它没有保持父子关系的顺序。它 return 首先是所有父项,然后是所有子项。
是否有可能以某种方式保持项目有序,并以与在 Sitecore 中相同的顺序将它们放入列表中?
MainItem
包含父子关系中的项目:
Item mainItem= Sitecore.Context.Database.GetItem(Settings.GetSetting("MainItem"));
mainItem.Axes.GetDescendants().ToList();
您可以递归地将项目添加到列表中:
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);