Если вам действительно важно отображать дни, отсортированные во внешнем интерфейсе, независимо от того, как они организованы в редакторе контента, просто отсортируйте их в коде, прежде чем отображать их, например.
using System.Linq;
var openingHours = Sitecore.Context.Item.Children
.OrderBy(s => Enum.Parse(typeof(DayOfWeek), s.DisplayName));
Если вы хотите отсортировать их в редакторе контента, вам нужно создать собственный сортировщик. Sitecore Climber предоставил ссылки, но для этого конкретного примера вы можете использовать:
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/system/Settings/Subitems Sorting
и установите тип для своего класса.
Вы должны установить сортировку подэлементов на стандартные значения шаблона. В этом случае похоже, что у вас есть простой шаблон папки, поэтому вам нужно создать более конкретный шаблон для папки «Часы работы». Несмотря на это, пользователь может решить изменить порядок элементов ИЛИ изменить сортировку по умолчанию для этой папки. Единственный гарантированный способ принудительного вывода — это сортировка перед рендерингом, т.е. первый бит кода.
person
jammykam
schedule
14.09.2015
They appear in the same order as shown in picture
- Почему бы тебе просто, ну, не отсортировать их вручную? Нажмите + перетащите их или переместите их вверх / вниз с вкладки «Главная» на ленте. - person jammykam   schedule 14.09.2015