Sco*_*ott 3 sitecore glass-mapper
我们有一个包含多个查询的站点,用于查询内容项的直接子项.我们只想让孩子按照他们在内容树中出现的顺序排序.
我们正在使用Glass Mapper,我们的集合属性如下所示:
[SitecoreQuery("/sitecore/content/Global/Team Members/Categories/*")]
public IEnumerable<ICategory> Categories { get; set; }
Run Code Online (Sandbox Code Playgroud)
上面的属性Categories返回似乎是alpha顺序的子项,但在某些情况下,它似乎有点随机.
知道如何设置查询以拉入内容树的顺序?
斯科特,
我相信Glass正在使用这些SitecoreQueries的快速查询,这就是为什么你没有得到任何可预测的排序顺序.不幸的是,快速查询不允许在查询语法中进行排序.如果您使用以下语法将查询放入Sitecore开发人员中心的XPath Builder中,您将看到相同的内容:
fast:/sitecore/content/Global/Team Members/Categories/*
Run Code Online (Sandbox Code Playgroud)
我认为解决此问题的最快方法是将Sitecore的__Sortorder字段添加到您的ICategory定义中.
[SitecoreField("__Sortorder"),]
string Sortorder { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后,您可以向模型添加另一个属性,该属性将返回此类型的排序版本.
public IEnumberable<ICategory> SortedCategories { get { return Categories.OrderBy(s=>s.Sortorder); } }
Run Code Online (Sandbox Code Playgroud)
请记住,您也可以使用[SitecoreChildren]装饰器来获取当前项目的子项.我不确定这是否真的是你所追求的,但是装饰者实际上会按照Sitecore的SortOrder以正确的顺序返回你的物品.
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |