以编程方式将模板字段设置为共享或未版本化
Set a templates Field as Shared or Unversioned Programmatically
我正在使用 Sitecore 版本 8.1 并尝试以编程方式创建 Templates
、Fields
和 Items
(以确保某些情况下 item/template 不存在)和我正在尝试将特定模板的字段设置为 shared
或 unversioned
但不能,因为:
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;
您需要在内部项目上设置它。从理论上讲,将字段从版本更改为未版本化或从共享更改为非共享是一个复杂的过程,但假设您正在添加这些字段并且应该没有任何项目,那么您应该没问题,
使用:
icon.InnerItem[TemplateFieldIDs.Unversioned] = "1"; // or null
或:
icon.InnerItem[TemplateFieldIDs.Shared] = "1"; // or null
我正在使用 Sitecore 版本 8.1 并尝试以编程方式创建 Templates
、Fields
和 Items
(以确保某些情况下 item/template 不存在)和我正在尝试将特定模板的字段设置为 shared
或 unversioned
但不能,因为:
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;
您需要在内部项目上设置它。从理论上讲,将字段从版本更改为未版本化或从共享更改为非共享是一个复杂的过程,但假设您正在添加这些字段并且应该没有任何项目,那么您应该没问题,
使用:
icon.InnerItem[TemplateFieldIDs.Unversioned] = "1"; // or null
或:
icon.InnerItem[TemplateFieldIDs.Shared] = "1"; // or null