在 Sitecore 中,我认为排序顺序始终优先于子项排序。我的假设是,如果一个项目的子项目排序设置为什么并不重要,如果它的一个子项目的排序顺序为 100,而另一个项目的排序顺序为 0,那么 0 的项目将首先显示。在最近的一个项目中,我看到内容树中发生了相反的情况。优先考虑子项目排序。有没有办法配置 sortorder 和 subitem 排序的检查顺序?我一直在查看我的 web.config 并将其与我的一个项目进行比较,该项目正在按照我认为应该的方式工作,但我找不到任何让我兴奋的东西。
我在项目的内容树中看到的内容似乎给予子项目排序优先级:
parent - subitem sorting = created
child1 - created = 01012014, sortorder = 100
child2 - created = 02022014, sortorder = 0
最佳答案
这可能是 Sitecore 中的一个错误,但它也可能按预期工作,您可能需要联系 Sitecore 支持人员来找出原因。
“Created”的子排序指向 Sitecore.Data.Comparers.CreatedComparer、Sitecore.Kernel。如果您查看此类中的 ExtractKey() 方法,您会发现它不包含原始项目的 SortOrder。如果没有,此 Sitecore 将仅按创建日期排序。
public override IKey ExtractKey(Item item)
{
Assert.ArgumentNotNull(item, "item");
KeyObj keyObj = new KeyObj()
{
Item = item,
Key = this.GetCreationDate(item)
};
return keyObj;
}
相反,您可以查看“Updated”的子排序,它指向 Sitecore.Data.Comparers.UpdatedComparer、Sitecore.Kernel。在其 ExtractKey() 方法中,您会看到它正在返回项目的排序顺序,因此您将获得更新日期和排序顺序之间的混合排序。
public override IKey ExtractKey(Item item)
{
Assert.ArgumentNotNull(item, "item");
KeyObj keyObj = new KeyObj()
{
Item = item,
Key = item.Statistics.Updated,
Sortorder = item.Appearance.Sortorder
};
return keyObj;
}
关于sorting - Sitecore 排序顺序与子项目排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25530353/