以编程方式将模板字段设置为共享或无版本

时间:2016-08-23 11:49:32

标签: asp.net sitecore sitecore8 sitecore8.1

我正在使用Sitecore版本8.1并尝试以编程方式创建TemplatesFieldsItems(以确保案例项/模板不存在时的某些方案)并且我正在尝试将特定模板的字段设置为sharedunversioned但不能,因为:

bool TemplateFieldItem.Shared属性只有getter方法(没有setter)。

我的代码:

var icon = PageTemplate.AddField("Icon", "Data");
using (new EditContext(icon.InnerItem)) 
{ 
    icon.Type = "Image"; 
    icon.Sortorder = 3; 
    icon.Shared = false;
}

所以我的问题只出在icon.Shared = false;以及icon.Unversioned = false;

1 个答案:

答案 0 :(得分:5)

您需要在内部项目上进行设置。理论上,将字段从版本更改为无版本或从共享更改为非共享是一个复杂的过程,但假设您正在添加这些字段并且应该没有项目,那么您应该没问题,

使用:

icon.InnerItem[TemplateFieldIDs.Unversioned] = "1"; // or null

或:

icon.InnerItem[TemplateFieldIDs.Shared] = "1"; // or null