Sitecore foreach但按日期字段订购子项

时间:2017-10-12 07:06:48

标签: sitecore sitecore6

我目前有webforms根据Sitecore中的自然顺序迭代并输出Sitecore项目。

规格现在改为想要针对每个项目的日期字段,现在将首先确定最早的排序顺序 - 最简单的迭代方法是什么,但首先按每个项目中的日期字段对列表进行排序?

字段名称为EVENTDATE

Page目前很高兴使用:

Sitecore.Collections.ChildList eventItems;
eventItems = eventRange.GetChildren();

foreach (Item eventItem in eventItems) {
    timelineHolder.InnerHtml += "<h3>" + eventItem.Fields["Title"] + "</h3>";
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

只需在foreach循环中添加.OrderBy(ei => ei["EVENTDATE"])

Sitecore.Collections.ChildList eventItems;
eventItems = eventRange.GetChildren();

foreach (Item eventItem in eventItems.OrderBy(ei => ei["EVENTDATE"]))
{
    timelineHolder.InnerHtml += "<h3>" + eventItem.Fields["Title"] + "</h3>";
}

日期在Sitecore中存储为字符串(在Sitecore 8中为20171012T000000Z,在Sitecore 6中为较短格式)。按字母顺序排序实际上按日期排序。