В то время как вызов TemplateManager.GetTemplates
возвращает вам коллекцию объектов Template
, вам нужен объект TemplateItem
, чтобы иметь возможность его редактировать. Вы можете использовать идентификатор, чтобы получить его от существующего объекта Database
.
Затем вам нужно выполнить итерацию в каждом TemplateSectionItem
шаблона, прежде чем вы сможете добраться до TemplateFieldItem
, где вы можете получить доступ к свойству InnerItem
и внести изменения в общее поле. Вам также нужно отметить BeginEdit()
и EndEdit()
, чтобы вы могли выполнить изменение.
Sitecore.Data.Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master");
using (new Sitecore.SecurityModel.SecurityDisabler())
{
try
{
var templates = TemplateManager.GetTemplates(masterDb);
foreach (var template in templates.Values)
{
if (template.FullName.StartsWith("FolderName"))
{
var tmpl = masterDb.GetTemplate(template.ID);
foreach (var section in tmpl.GetSections())
{
foreach (var templateFieldItem in section.GetFields())
{
templateFieldItem.BeginEdit();
templateFieldItem.InnerItem[TemplateFieldIDs.Shared] = "0";
templateFieldItem.EndEdit();
}
}
}
}
}
catch (Exception ex)
{
Response.Write("Error" + ex.Message);
}
}
Надеюсь, это поможет :)