排序';天';Sitecore中按周天数列出的项目

排序';天';Sitecore中按周天数列出的项目,sitecore,sitecore7.2,Sitecore,Sitecore7.2,有没有办法根据一周中的几天对下列项目进行排序 在C#中,我可以这样做: string [] initialArray = {"Friday", "Monday", ... } ; string [] sortedArray = initialArray.OrderBy(s => Enum.Parse(typeof(DayOfWeek), s)).ToArray() ; 但我不知道如何使用Sitecore实现这种功能 请查看下一篇文章: 请查看下一篇文章: 请查看下一篇文章:

有没有办法根据一周中的几天对下列项目进行排序

在C#中,我可以这样做:

string [] initialArray = {"Friday", "Monday", ... } ; 

string [] sortedArray = initialArray.OrderBy(s => Enum.Parse(typeof(DayOfWeek), s)).ToArray() ;

但我不知道如何使用Sitecore实现这种功能

请查看下一篇文章:


请查看下一篇文章:


请查看下一篇文章:


请查看下一篇文章:


如果您真正关心的是在前端显示排序的日期,而不管它们在内容编辑器中是如何组织的,则只需在显示它们之前在代码中排序即可,例如

using System.Linq;

var openingHours = Sitecore.Context.Item.Children
                           .OrderBy(s => Enum.Parse(typeof(DayOfWeek), s.DisplayName));
如果要在内容编辑器中对它们进行排序,则需要创建自定义分类器。Sitecore攀登者提供了链接,但对于此特定示例,您可以使用:

using Sitecore.Data.Comparers;
using Sitecore.Data.Items;

public class DayOfWeekComparer : Comparer
{
    protected override int DoCompare(Item item1, Item item2)
    {
        var x = (int)Enum.Parse(typeof(DayOfWeek), item1.DisplayName);
        var y = (int)Enum.Parse(typeof(DayOfWeek), item2.DisplayName);
        return x.CompareTo(y);
    }
}
然后在
core
数据库中,在
/sitecore/templates/System/Child Sorting
下创建一个项目类型为
/sitecore/templates/System/Child Sorting
的项目,并将该类型设置为您的类


您应该根据模板的标准值设置子项排序。在本例中,看起来您有一个简单的文件夹模板,因此您需要为开放时间文件夹创建一个更具体的模板。即使如此,用户仍然可以决定重新排序项目或更改该文件夹的默认排序。强制输出的唯一保证方法是在渲染前进行排序,即第一位代码。

如果您真正关心的是在前端显示排序的日期,而不管它们在内容编辑器中是如何组织的,则只需在显示它们之前在代码中进行排序,例如

using System.Linq;

var openingHours = Sitecore.Context.Item.Children
                           .OrderBy(s => Enum.Parse(typeof(DayOfWeek), s.DisplayName));
如果要在内容编辑器中对它们进行排序,则需要创建自定义分类器。Sitecore攀登者提供了链接,但对于此特定示例,您可以使用:

using Sitecore.Data.Comparers;
using Sitecore.Data.Items;

public class DayOfWeekComparer : Comparer
{
    protected override int DoCompare(Item item1, Item item2)
    {
        var x = (int)Enum.Parse(typeof(DayOfWeek), item1.DisplayName);
        var y = (int)Enum.Parse(typeof(DayOfWeek), item2.DisplayName);
        return x.CompareTo(y);
    }
}
然后在
core
数据库中,在
/sitecore/templates/System/Child Sorting
下创建一个项目类型为
/sitecore/templates/System/Child Sorting
的项目,并将该类型设置为您的类


您应该根据模板的标准值设置子项排序。在本例中,看起来您有一个简单的文件夹模板,因此您需要为开放时间文件夹创建一个更具体的模板。即使如此,用户仍然可以决定重新排序项目或更改该文件夹的默认排序。强制输出的唯一保证方法是在渲染前进行排序,即第一位代码。

如果您真正关心的是在前端显示排序的日期,而不管它们在内容编辑器中是如何组织的,则只需在显示它们之前在代码中进行排序,例如

using System.Linq;

var openingHours = Sitecore.Context.Item.Children
                           .OrderBy(s => Enum.Parse(typeof(DayOfWeek), s.DisplayName));
如果要在内容编辑器中对它们进行排序,则需要创建自定义分类器。Sitecore攀登者提供了链接,但对于此特定示例,您可以使用:

using Sitecore.Data.Comparers;
using Sitecore.Data.Items;

public class DayOfWeekComparer : Comparer
{
    protected override int DoCompare(Item item1, Item item2)
    {
        var x = (int)Enum.Parse(typeof(DayOfWeek), item1.DisplayName);
        var y = (int)Enum.Parse(typeof(DayOfWeek), item2.DisplayName);
        return x.CompareTo(y);
    }
}
然后在
core
数据库中,在
/sitecore/templates/System/Child Sorting
下创建一个项目类型为
/sitecore/templates/System/Child Sorting
的项目,并将该类型设置为您的类


您应该根据模板的标准值设置子项排序。在本例中,看起来您有一个简单的文件夹模板,因此您需要为开放时间文件夹创建一个更具体的模板。即使如此,用户仍然可以决定重新排序项目或更改该文件夹的默认排序。强制输出的唯一保证方法是在渲染前进行排序,即第一位代码。

如果您真正关心的是在前端显示排序的日期,而不管它们在内容编辑器中是如何组织的,则只需在显示它们之前在代码中进行排序,例如

using System.Linq;

var openingHours = Sitecore.Context.Item.Children
                           .OrderBy(s => Enum.Parse(typeof(DayOfWeek), s.DisplayName));
如果要在内容编辑器中对它们进行排序,则需要创建自定义分类器。Sitecore攀登者提供了链接,但对于此特定示例,您可以使用:

using Sitecore.Data.Comparers;
using Sitecore.Data.Items;

public class DayOfWeekComparer : Comparer
{
    protected override int DoCompare(Item item1, Item item2)
    {
        var x = (int)Enum.Parse(typeof(DayOfWeek), item1.DisplayName);
        var y = (int)Enum.Parse(typeof(DayOfWeek), item2.DisplayName);
        return x.CompareTo(y);
    }
}
然后在
core
数据库中,在
/sitecore/templates/System/Child Sorting
下创建一个项目类型为
/sitecore/templates/System/Child Sorting
的项目,并将该类型设置为您的类



您应该根据模板的标准值设置子项排序。在本例中,看起来您有一个简单的文件夹模板,因此您需要为开放时间文件夹创建一个更具体的模板。即使如此,用户仍然可以决定重新排序项目或更改该文件夹的默认排序。强制输出的唯一保证方法是在渲染前进行排序,即代码的第一位。

您的意图是什么?是否希望这些项目在内容编辑器的文件夹内自动排序?或者?。为什么不在Sitecore中设置Sortorder字段?@DmytroShevchenko,当我获取项目并显示在页面上时。它们的出现顺序与我问题中的图片所示相同。我正在考虑在Sitecore中对它们进行排序。所以当我得到它们的时候,它们已经被分类了。@JanBluemink我对Sortorder字段一无所知,我现在就用谷歌搜索一下。谢谢<代码>它们的显示顺序与图中所示相同-为什么不手动对它们进行排序呢?单击并拖动它们,或从Ribbon上的“主页”选项卡上向上/向下移动它们。您的具体意图是什么?是否希望这些项目在内容编辑器的文件夹内自动排序?或者?。为什么不在Sitecore中设置Sortorder字段?@DmytroShevchenko,当我获取项目并显示在页面上时。它们的出现顺序与我问题中的图片所示相同。我正在考虑在Sitecore中对它们进行排序。所以当我得到它们的时候,它们已经被分类了。@JanBluemink我对Sortorder字段一无所知,我现在就用谷歌搜索一下。谢谢<代码>它们的显示顺序与图中所示相同-为什么不手动对它们进行排序呢?单击并拖动它们,或从Ribbon上的“主页”选项卡上向上/向下移动它们。您的具体意图是什么?将