在使用xpath构建器的入门工具包中,如何从Home项目下的“Site Section”模板中获取所有继承的项目? 当我运行以下内容时: /sitecore/content/home/*[@@templatekey='product section'] 返回一个项目/ sit
当我运行以下内容时:
/sitecore/content/home/*[@@templatekey='product section']
返回一个项目/ sitecore / content / Home / Products,但是,以下内容不会返回任何内容:
/sitecore/content/home/*[@@templatekey='site section']
我正在尝试做的是使用asp.net web控件而不是xslt从继承“Site Section”模板的项目构建菜单.
有任何想法吗?
谢谢,
塔里克
**更新
提供有关该问题的更多信息:
item / sitecore / content / Home / Products有模板/ sitecore / templates / Starter Kit / Site Sections / Product Section,其基本模板为/ sitecore / templates / Starter Kit / Item Types / Site Section
如果我想要Home下的产品和参考(类似于产品)项目,我将运行以下查询:
/sitecore/content/home/*[@@templatekey='product section' or @@templatekey='references section']
有没有办法让Home下的项目以Site Section作为基本模板.在xslt中有一个方法sc:GetItemsOfType(‘site section’,$home / item).
**答案
var homeItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.StartPath); var siteSectionItems = new List<Item>(); foreach (Item item in homeItem.Children) { var itemTemplate = TemplateManager.GetTemplate(item); if (itemTemplate.InheritsFrom("Site Section")) siteSectionItems.Add(item); }在查询中使用//将使其递归,而不是直接子项.这会对性能产生影响.
/sitecore/content/home//*[@@templatekey='site section']
另外,不应该是@@ templatename而不是@@ templatekey吗?
/sitecore/content/home//*[@@templatename='site section']