代码之家  ›  专栏  ›  技术社区  ›  user3779703

Sitecore foreach但按日期排序子项字段

  •  0
  • user3779703  · 技术社区  · 7 年前

    我目前有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 回复  |  直到 7 年前
        1
  •  0
  •   Marek Musielak    7 年前

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

    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