Я не уверен, чего именно вы пытаетесь достичь, но было бы лучше определить общедоступную константу для Sitecore SortOrder. Минимальное значение где-то доступно.
public const int SortOrderMinimumValue = -2143053648;
А затем ссылаться как этот
item.Fields["__Sortorder"].Value = SortOrderMinimumValue + someId;
Таким образом, минимальное значение может быть доступом к любому другому коду и может быть изменено в одном месте, если вы хотите изменить минимальное значение для вашей сортировки.
Для сортировки элементов по порядку сортировки затем нужно будет сделать следующее
public class ItemComparer : IComparer
{
public int CompareSortOrder(Item item1, Item item2)
{
int sortOrder1;
bool parsed1 = int.TryParse(item1["__Sortorder"], out sortOrder1);
int sortOrder2;
bool parsed2 = int.TryParse(item2["__Sortorder"], out sortOrder2);
if (!parsed1 || !parsed2)
throw new Exception("Sort order value is incorrect type");
if (sortOrder1 < sortOrder2)
return -1;
if (sortOrder1 > sortOrder2)
return 1;
else
return 0;
}
}
А затем ссылаться на код при сортировке;
var itemComparer = new ItemComparer();
items.Sort(itemComparer.CompareSortOrder);
Зачем вам такие большие цифры? Sitecore рекомендует не более 100 предметов на любом уровне дерева. –
не более 100 элементов в одной папке, но заказ - это кросс-папка. – Adel
то, что мы сортируем, - это вся статья итальянской конституции. это очень сложная структура. Многие книги содержат главы, раздел ... и сортировка должна быть броском главы и раздел – Adel