我在Sitecore中有一个页面项,并且我知道它是从某个基本模板派生的。我具有该基本模板ID,但我想获取此基本模板的实例,该实例是我页面的一部分。我希望将其作为项目,因此例如可以获取页面内部模板的ID。更清楚地说:称为模板A的A1的页面-template A具有模板B作为基本模板-B是作为一个实例B1的页面A1的一部分(特定于页面A1的字段值)如何获得B1作为独立的商品/ ID?任何帮助表示赞赏。谢谢。
不确定您的意思吗?为什么要获取继承模板的实例?该项目将通过item.fields [templateBFieldId] .Value
使您继承的所有字段都可用您可以执行类似检查当前项目是否从该模板继承的操作..诸如此类的操作:
public static bool InheritsFrom(this Item item, ID templateId)
{
return item.Template.DoesTemplateInheritFrom(templateId);
}
public static bool DoesTemplateInheritFrom(this TemplateItem template, ID templateId)
{
if (template == null || templateId.IsNull)
return false;
if (!(template.ID == templateId))
return template.DoesTemplateInheritFrom(TemplateManager.GetTemplate(templateId, template.Database));
return true;
}
private static bool DoesTemplateInheritFrom(this TemplateItem template, Template baseTemplate)
{
if (baseTemplate == null)
return false;
return TemplateManager.GetTemplate(template.ID, template.Database).DescendsFromOrEquals(baseTemplate.ID);
}