首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于父页面父级的Sitecore过滤页面

基于父页面父级的Sitecore过滤页面
EN

Stack Overflow用户
提问于 2019-07-23 05:27:13
回答 2查看 69关注 0票数 0

我的页面结构

-Career页面1(模板-泛型页)

  • 前端开发人员(普通文件夹)
代码语言:javascript
复制
- Page1   (Template-Job Page)
- Page2   (Template-Job Page)
- Page3   (Template-Job Page)
- Page4   (Template-Job Page)

  • 后端开发人员(普通文件夹)
代码语言:javascript
复制
- Page1   (Template-Job Page)
- Page2   (Template-Job Page)
- Page3   (Template-Job Page)
- Page4   (Template-Job Page)

-Career页面2(模板-泛型页)

  • 前端开发人员(普通文件夹)
代码语言:javascript
复制
- Page1   (Template-Job Page)
- Page2   (Template-Job Page)
- Page3   (Template-Job Page)
- Page4   (Template-Job Page)

  • 后端开发人员(普通文件夹)
代码语言:javascript
复制
- Page1   (Template-Job Page)
- Page2   (Template-Job Page)
- Page3   (Template-Job Page)
- Page4   (Template-Job Page)

我的问题是:我的编码方式是:每当我点击(职业页面1)时,我都会得到使用职务页面模板的页面列表,所以我得到了职业页面1的第1-8页和第1-8页的列表,但是我只想要一页(职业页面1)。

我尝试过GetQueryable来获取模板id等于“职务页”模板的页面列表

IQueryable search = context.GetQueryable().Where(x => x.TemplateId == PageID);//这将使我获得从PageID(职务页面)模板创建的所有页面列表。

当我点击职业页面1时,我只想要(职业页面1)页面,当我点击职业页面2时,我只想要(职业页面2)页面列表

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-24 10:44:21

您还应该在Paths (索引为_path)上进行筛选。它包含一个ID的列表,表示项目所在的路径。因此,它看起来如下(取决于您的模型的外观):

代码语言:javascript
复制
contex.GetQueryable<MyType>().Where(x => x.TemplateId == JobPageTemplateId && x.Paths.Contains(careerPageId))

根据解决方案的外观,也考虑对语言和_latestversion进行过滤,以避免意外的结果和潜在的重复。

票数 0
EN

Stack Overflow用户

发布于 2019-07-30 09:23:37

可以使用多种方式进行过滤

  1. 使用Axes.GetAncestors获取祖先列表,并运行一个循环到页面类型是否包含该祖先
  2. 使用Path属性检查职业页面名称{ attribute }是否存在,这可以由Jobpage.Path.Contains(Sitecore.Context.Item.Name)完成
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57157214

复制
相关文章

相似问题

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