如果我有一個Sitecore的項目item
和我使用的數據字段「我的字段」添加到它:Sitecore如何在通過Template.AddField添加字段時指定數據字段類型(字符串,字符串);
item.Template.AddField("My Field", "Data");
如何指定字段類型吧。例如Single-Line Text
如果我有一個Sitecore的項目item
和我使用的數據字段「我的字段」添加到它:Sitecore如何在通過Template.AddField添加字段時指定數據字段類型(字符串,字符串);
item.Template.AddField("My Field", "Data");
如何指定字段類型吧。例如Single-Line Text
的AddField(...)
方法返回添加模板字段(它不有一個類型呢)。
然後,您可以設置這樣的模板字段類型:
var templateField = item.Template.AddField("Field name", "Section name");
using (new EditContext(templateField.InnerItem)) {
templateField.Type = "Single-Line Text";
}
類型值應該對應於字段類型的名稱 - 例如Single-Line Text
,Rich Text
,Grouped Droplist
等
根據您的安全,你可能還需要在SecurityDisabler
添加整個事情。
using (new SecurityDisabler()) {
var templateField = item.Template.AddField("Field name", "Section name");
using (new EditContext(templateField.InnerItem)) {
templateField.Type = "Single-Line Text";
}
}
請嘗試使用下面的代碼:
private void AddFieldToTemplate(string fieldName, string templatePath)
{
const string templateOftemplateFieldId = "{453A3E98-FD4G-AGBF-EFTE-E683A0331AC7}";
// this will do on your "master" database, consider Sitecore.Context.Database if you need "web"
var templateItem = Sitecore.Configuration.Factory.GetDatabase("master").GetItem(tempatePath);
if (templateItem != null)
{
var templateSection = templateItem.Children.FirstOrDefault(i => i.Template.Name == "Template section");
if (templateSection != null)
{
var newField = templateSection.Add(fieldName, new TemplateID(new ID(templateOftemplateFieldId)));
using (new EditContext(newField))
{
newField["Type"] = "Text"; // text stands for single-line lext field type
}
}
else
{
add a new section template here
}
}
}
您將使用下一行代碼添加新的領域:
AddFieldToTemplate("New field","/sitecore/templates/Sample/Sample Item");
非常感謝。 'xx.Type =「單行文本」;'我真的很想念。 – Kamran