首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sitecore排序排序vs子项排序

Sitecore排序排序vs子项排序
EN

Stack Overflow用户
提问于 2014-08-27 22:50:54
回答 2查看 1.7K关注 0票数 3

在Sitecore中,我认为sortorder总是优先于子项排序。我的假设是,如果一个子项的sortorder为100,另一个子项的sortorder为0,那么项的子项排序设置为什么并不重要,0的子项将首先出现。在最近的一个项目中,我在内容树中看到了相反的情况。子项排序被赋予优先级。有没有办法配置sortorder和子项排序的检查顺序?我一直在查看我的web.config,并将其与我的一个项目进行了比较,该项目的工作方式与我认为的应该是一样的,但我找不到任何突然出现在我身上的东西。

我在项目的内容树中看到的视觉效果似乎给了子项排序优先级:

代码语言:javascript
复制
parent - subitem sorting = created
   child1 - created = 01012014, sortorder = 100
   child2 - created = 02022014, sortorder = 0
EN

回答 2

Stack Overflow用户

发布于 2014-08-28 00:42:16

这可能是Sitecore中的一个错误,但它也可能按预期工作,您可能需要联系Sitecore支持人员来找出是哪个错误。

"Created“的子排序指向Sitecore.Data.Comparers.CreatedComparer、Sitecore.Kernel。如果查看这个类中的ExtractKey()方法,就会发现它没有包含原始项的SortOrder。如果没有此选项,Sitecore将仅按创建日期排序。

代码语言:javascript
复制
   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()方法中,您可以看到它返回项目的排序顺序,因此您将获得Updated和排序顺序之间的混合排序。

代码语言:javascript
复制
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;
    }
票数 5
EN

Stack Overflow用户

发布于 2016-05-20 00:31:03

当您指定要使用的自定义排序器时,如何对项进行排序完全取决于运行比较器的代码。

比较器必须是System.Collections.Generic.IComparer,但之后就不能保证是否使用排序顺序字段,或者如果使用它,它将是升序还是降序。

我建议检查为特定项目选择的排序器,并使用dotPeek分析该排序器的源代码。

在构建定制的排序器时,最好扩展Sitecore的Sitecore.Data.Comparers.Comparer类并覆盖DoCompare方法。它将始终如一地处理排序顺序字段,并回退到DoCompare方法进行二次排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25530353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档