【问题标题】:Sort child nodes by date - Razor Umbraco按日期对子节点进行排序 - Razor Umbraco
【发布时间】:2016-01-26 14:30:53
【问题描述】:

对于以下示例,我使用如下所示的内容树: Content tree

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
    var home = Model.Content.Descendants().Where(x => x.DocumentTypeAlias == "BlogContainer");

    <div class="container">
        <ul>
            @foreach (var item in home)
            {
                foreach (var items in item.Children)
                {
                    foreach (var baby in items.Children.OrderBy("date desc"))
                    {
                        var date = baby.GetPropertyValue<DateTime>("date");

                        <li>@items.Name - @baby.Name - @date</li>
                    }
                }
            }
        </ul>
    </div>
}

结果是Result three我需要收集所有物品并按日期设置订单

【问题讨论】:

    标签: c# list razor sql-order-by umbraco


    【解决方案1】:

    尝试做类似的事情

    var allItems = homePage.Descendants("YourItemNodeType")
                .Where(item => item.HasValue("date")
                                  && item.GetPropertyValue<DateTime>
                                      ("date") != DateTime.MinValue)
                .ToList()
                .OrderByDescending(item => item.GetPropertyValue<DateTime>("date"));
    

    这应该让您获得类别 1 和类别 2 中的所有项目,我总是倾向于检查我的日期是否实际设置(对于@bowserm 提到的创建日期,您不需要这样做,因为它总是存在值)。

    一旦您将它们列在列表中,您就可以按设定的日期对它们进行排序,当我在不同的父页面中列出新闻文章时,我会这样做,然后您只需一个循环即可浏览所有文章。

    【讨论】:

      【解决方案2】:

      首先,您使用的是哪个 Umbraco 版本?看起来你正在使用 6+?是对的吗?我下面的答案应该适用于 6 和 7。

      您要查找的属性名为createDate,因此您可以使用baby.GetPropertyValue&lt;DateTime&gt;("createDate") 之类的名称。更好的是,您应该可以只输入baby.CreateDate。 Umbraco 已将 IPublishedContent 上您可能想要的所有默认属性公开为属性,因此您无需使用 GetPropretyValue(...) 即可获得这些属性。

      看看这个Umbraco v6 MVC Razor Cheatsheet。它列出了您可以从 Umbraco 中的节点获取的默认属性。 v6 的 razor 语法也适用于 v7,因此此备忘单适用于两者。

      【讨论】:

      • 这是 Umbraco 7。是的 createDate 给出了与我已经得到的相同的结果。我需要收集所有父子,我也得到了,但排序只在父节点下。 date 只是来自自定义日期选择器的 propertyValue。查看链接:i.stack.imgur.com/UtGg5.jpg
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 2020-08-14
      • 1970-01-01
      • 2020-10-30
      • 2015-12-04
      • 1970-01-01
      相关资源
      最近更新 更多