Sitecore选择继承模板上的项目

Sitecore选择继承模板上的项目,sitecore,Sitecore,我正在尝试基于查询将asp:dropdownlist绑定到某个sitecore项目。通过查询,我想返回包含在模板“Site Root”中的项目 当我使用: Sitecore.Context.Database.SelectItems("/sitecore/content/*[@@templatename='Site Root']"); 它只返回具有“Site Root”模板的项目,而不返回继承此模板的模板 如何获取查询以返回继承此模板的项目?您不能查询继承的模板以下是一个返回继承特定模板的所有模

我正在尝试基于查询将asp:dropdownlist绑定到某个sitecore项目。通过查询,我想返回包含在模板“Site Root”中的项目

当我使用:

Sitecore.Context.Database.SelectItems("/sitecore/content/*[@@templatename='Site Root']");
它只返回具有“Site Root”模板的项目,而不返回继承此模板的模板


如何获取查询以返回继承此模板的项目?

您不能查询继承的模板

以下是一个返回继承特定模板的所有模板的查询。但要小心,因为它不会表现得很好

/sitecore/templates//*[contains(@__Base template, '<MY TEMPLATE ID>')]
/sitecore/templates/*[包含(@_基本模板,”)]

如果性能很重要,那么最好使用Sitecore ContentSearch查询模板。对于需要首先激活的内容,有一个
\u模板
计算字段。有关详细信息,请参阅。

Ok,将只更改我的查询,以包括从该模板继承的所有模板。这当然是一个选项,但添加到查询中的检查越多,它可能运行得越慢。您还应该考虑使用SITECORE API代码做一个更通用的查询,然后使用LINQ来过滤结果项,通过<代码> TemplateName <代码>错误。你可以。。。请看下面的答案。谢谢!当您可以缩小查询模板的位置时,它实际上表现得相当好;-)