有没有办法从页面关系的左侧获取相关页面,而该页面关系不是Kentico中的当前文档

有没有办法从页面关系的左侧获取相关页面,而该页面关系不是Kentico中的当前文档,kentico,kentico-11,Kentico,Kentico 11,我需要使用页面关系从任何辅助页面(1,2,3,4…)访问主页信息,然后从主页检索关系列表,在本例中为SecondaryPage1、SecondaryPage2、SecondaryPage3等 我有以下结构 主页(页面类型如文章)与相关: 第二页1(页面类型:例如项目) 第二页2(页面类型:例如项目) 第二页3(页面类型:例如项目) 第二页4(页面类型:例如项目) 第二页5(页面类型:例如项目) 有没有简单的方法?我正在使用CMSRepeater显示项目。我正在考虑为这个特定场景创建一个定制的

我需要使用页面关系从任何辅助页面(1,2,3,4…)访问主页信息,然后从主页检索关系列表,在本例中为SecondaryPage1、SecondaryPage2、SecondaryPage3等

我有以下结构 主页(页面类型如文章)相关:

  • 第二页1(页面类型:例如项目)
  • 第二页2(页面类型:例如项目)
  • 第二页3(页面类型:例如项目)
  • 第二页4(页面类型:例如项目)
  • 第二页5(页面类型:例如项目)
有没有简单的方法?我正在使用CMSRepeater显示项目。我正在考虑为这个特定场景创建一个定制的CMSRepeater,但我想知道是否有不同的方法

总而言之,第二页1与右侧的主页相关

MainPage -> isRelatedTo -> SecondaryPage1
我正在尝试从主页上显示整个列表,我需要访问任何辅助页面上的信息


我创建了这段代码,它运行得很好,我只是想发现是否有更简单的解决方案,或者是否有其他替代方案

....

List<CMS.DocumentEngine.TreeNode> mainRelatedItems = new List<CMS.DocumentEngine.TreeNode>();

mainRelatedItems.AddRange(DocumentHelper.GetDocuments().Types(PageTypes.Split(';')).InRelationWith(CurrentDocument.NodeGUID, PageRelationship, relationshipSide));

List<CMS.DocumentEngine.TreeNode> secondaryRelatedItems = new List<CMS.DocumentEngine.TreeNode>();

foreach (CMS.DocumentEngine.TreeNode item in mainRelatedItems)
{

if(ExcludeCurrentDocument)
            secondaryRelatedItems.AddRange(DocumentHelper.GetDocuments().Types(PageTypes.Split(';')).InRelationWith(item.NodeGUID, SecondLevelPageRelationship, secondaryRelationshipSide).Where(x => x.NodeGUID != CurrentDocument.NodeGUID));
else
            secondaryRelatedItems.AddRange(DocumentHelper.GetDocuments().Types(PageTypes.Split(';')).InRelationWith(item.NodeGUID, SecondLevelPageRelationship, secondaryRelationshipSide));

}
....

CustomRepeater.ItemTemplate = TransformationHelper.LoadTransformation(CustomRepeater, TransformationName);
CustomRepeater.DataSource = secondaryRelatedItems;
CustomRepeater.DataBind();

....
。。。。
List mainRelatedItems=新列表();
mainRelatedItems.AddRange(DocumentHelper.GetDocuments().Types(PageTypes.Split(“;”)).InRelationWith(CurrentDocument.NodeGUID,PageRelationship,relationshipSide));
List secondaryRelatedItems=新列表();
foreach(主要相关项目中的CMS.DocumentEngine.TreeNode项目)
{
if(不包括当前文档)
secondaryRelatedItems.AddRange(DocumentHelper.GetDocuments().Types(PageTypes.Split(“;”)).InRelationWith(item.NodeGUID,SecondlevelPageRelationshipSide),其中(x=>x.NodeGUID!=CurrentDocument.NodeGUID));
其他的
secondaryRelatedItems.AddRange(DocumentHelper.GetDocuments().Types(PageTypes.Split(“;”)).InRelationWith(item.NodeGUID,SecondLevelPageRelationship,secondaryRelationshipSide));
}
....
CustomRepeater.ItemTemplate=TransformationHelper.LoadTransformation(CustomRepeater,TransformationName);
CustomRepeater.DataSource=secondaryRelatedItems;
CustomRepeater.DataBind();
....

在文档查询中,可以指定关系GUID以及边和关系名称。它不必是当前文档

DocumentHelper.GetDocuments().InRelationWith(guid,“RelationshipName”,side)

**更新**

根据问题的最新更新,您需要通过URL参数或会话或其他一些参数获取主文档id/guid,然后使用类似
DocumentHelper.GetDocument(MainDocID)
的方法查找该节点。拥有主文档后,可以使用上面提供的代码执行查找


听起来你没有一个很好的方法来获取这些信息,因为其中一个辅助页面可能与许多其他页面或页面类型相关。一个建议可能是创建一个非常特定的关系名称,只需通过该非常特定的关系名称和辅助页面ID查询主文档,即可获得与之相关的任何主页。

谢谢Brenden,我想做的是得到一个二级关系列表。请参阅更新的答案@JesusAlfredoPizañaEspinosa