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

Moa*_*nou 3 asp.net sitecore sitecore8 sitecore8.1

我使用Sitecore的8.1版本,并试图创造Templates,FieldsItems以编程方式(保证的情况下,项目的一些场景/模板不存在的),我想设置特定模板的字段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;
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,只有在 icon.Shared = false;icon.Unversioned = false;

Mar*_*lak 5

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

使用:

icon.InnerItem[TemplateFieldIDs.Unversioned] = "1"; // or null
Run Code Online (Sandbox Code Playgroud)

要么:

icon.InnerItem[TemplateFieldIDs.Shared] = "1"; // or null
Run Code Online (Sandbox Code Playgroud)