sorting - Sitecore 排序顺序与子项目排序

标签 sorting sitecore subitem

在 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/

相关文章:

sitecore - 体验编辑器自定义功能

android - 将子项添加到 Android 中的 ListView

java - 基于多个属性对List进行排序 Collection.sort() 编译错误

javascript - 对字符串数组进行排序,使用另一个字符串数组来确定顺序

mysql - Sitecore 数据库 : get url for content tem from GUID

c# - 更改某些 ListView 列的颜色

delphi - TListView 中的中心子项目图像

javascript - MongoDB $sort 聚合

python - 查找 CSV 文件中的最高平均值

javascript - SheerResponse 未关闭