遍历Sitecore祖先项目,直到找到模板

时间:2017-03-23 15:32:16

标签: sitecore sitecore6

我的网站在单个浏览器布局页面占位符上包含许多子布局。

我已将我的一个子布局数据源设置到我的内容结构中的一个文件夹中,该文件夹包含新闻项并获取其值和子项,如下所示,以呈现这些新闻项:

Sitecore.Collections.ChildList childItems;

if (Sitecore.Context.Database.GetItem(this.DataSource) != null)
{
  childItems = Sitecore.Context.Database.GetItem(this.DataSource).GetChildren();
}
else
{
  litOutput.Text += "You need to set a datasource";
  return;
}
// Then iterating
foreach (Item item in childItems){}

但是我还需要获取位于我网站主根的Sitecore项目,这些项目代表子布局将使用的其他属性和子项目。

所以真的定义了我的数据源,我不仅要遍历它的子节点来获取新闻数据(这是有效的)我还需要遍历主根然后再下一个级别到一个名为SETTINGS的文件夹。保留此项目的字段。

主根模板被称为“Microsite”,所以我真的需要有关如何遍历的帮助,直到我找到该模板名称,然后进入设置以获取这些项目。

希望这是有道理的,任何人都可以协助这种方法。

1 个答案:

答案 0 :(得分:0)

query:./ancestor-or-self::*[@@templatename='Microsite']/*[@@name='Settings']

虽然这有效,但在每次请求时都不是很好的编码...

你可能想要使用templateid而不是templatename ..而不是' hardcode'名称"设置"。