如何从代码隐藏编辑 Sitecore 图像字段
How to edit the Sitecore Image Field from codebehind
我有一个带有字段“image
”的站点核心项目“CurrentItem
”。我正在从后面的代码中编辑它,如下所示:
//Get the Image from /sitecore/media library/Images/Test
Item imageItem = Sitecore.Context.Database.GetItem("{AEBB3071-3462-405C-9CD3-A2B515B343D1}")
//Edit
CurrentItem.Editing.BeginEdit();
CurrentItem["image"] = imageItem.ToString();
CurrentItem.Editing.EndEdit();
PS: imageItem
是/sitecore/media library/Images/Test
下的图
我也试过 CurrentItem["image"] = imageItem.Paths.Path;
但还是不行。
需要将字段设为ImageField
,并将MediaID属性设置为MediaItem的ID:
//Get the Image from /sitecore/media library/Images/Test
Sitecore.Data.Items.MediaItem imageItem = Sitecore.Context.Database.GetItem("{AEBB3071-3462-405C-9CD3-A2B515B343D1}")
//Edit
CurrentItem.Editing.BeginEdit();
var imageField = CurrentItem.Fields["image"] as ImageField;
imageField.MediaID = imageItem.ID;
imageField.MediaPath = imageItem.MediaPath;
CurrentItem.Editing.EndEdit();
您还可以查看 this 博客 post,了解有关 post 6.X 版本的更多说明。
您可以使用 Sitecore.Data.Fields.ImageField class 更新图像字段。例如,
更新 Master 中 /Sitecore/Content/Home 项中名为 ImageField 的图像字段
数据库到 /Sitecore/Media Library/Images/Sample 图片:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Items.Item sampleItem =
master.GetItem("/sitecore/media library/images/sample");
Sitecore.Data.Items.MediaItem sampleMedia =
new Sitecore.Data.Items.MediaItem(sampleItem);
Sitecore.Data.Fields.ImageField imageField = home.Fields["imagefield"];
if (imageField.MediaID != sampleMedia.ID )
{
home.Editing.BeginEdit();
imageField.Clear();
imageField.Src = Sitecore.Resources.Media.MediaManager.GetMediaUrl(sampleMedia);
imageField.MediaID = sampleMedia.ID;
imageField.MediaPath = sampleMedia.MediaPath;
if (!String.IsNullOrEmpty(sampleMedia.Alt))
{
imageField.Alt = sampleMedia.Alt;
}
else
{
imageField.Alt = sampleMedia.DisplayName;
}
home.Editing.EndEdit();
}
请检查 https://sdn.sitecore.net/upload/sitecore6/64/content_api_cookbook-usletter.pdf 4.1.7 如何访问图像字段
我有一个带有字段“image
”的站点核心项目“CurrentItem
”。我正在从后面的代码中编辑它,如下所示:
//Get the Image from /sitecore/media library/Images/Test
Item imageItem = Sitecore.Context.Database.GetItem("{AEBB3071-3462-405C-9CD3-A2B515B343D1}")
//Edit
CurrentItem.Editing.BeginEdit();
CurrentItem["image"] = imageItem.ToString();
CurrentItem.Editing.EndEdit();
PS: imageItem
是/sitecore/media library/Images/Test
我也试过 CurrentItem["image"] = imageItem.Paths.Path;
但还是不行。
需要将字段设为ImageField
,并将MediaID属性设置为MediaItem的ID:
//Get the Image from /sitecore/media library/Images/Test
Sitecore.Data.Items.MediaItem imageItem = Sitecore.Context.Database.GetItem("{AEBB3071-3462-405C-9CD3-A2B515B343D1}")
//Edit
CurrentItem.Editing.BeginEdit();
var imageField = CurrentItem.Fields["image"] as ImageField;
imageField.MediaID = imageItem.ID;
imageField.MediaPath = imageItem.MediaPath;
CurrentItem.Editing.EndEdit();
您还可以查看 this 博客 post,了解有关 post 6.X 版本的更多说明。
您可以使用 Sitecore.Data.Fields.ImageField class 更新图像字段。例如, 更新 Master 中 /Sitecore/Content/Home 项中名为 ImageField 的图像字段 数据库到 /Sitecore/Media Library/Images/Sample 图片:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Items.Item sampleItem =
master.GetItem("/sitecore/media library/images/sample");
Sitecore.Data.Items.MediaItem sampleMedia =
new Sitecore.Data.Items.MediaItem(sampleItem);
Sitecore.Data.Fields.ImageField imageField = home.Fields["imagefield"];
if (imageField.MediaID != sampleMedia.ID )
{
home.Editing.BeginEdit();
imageField.Clear();
imageField.Src = Sitecore.Resources.Media.MediaManager.GetMediaUrl(sampleMedia);
imageField.MediaID = sampleMedia.ID;
imageField.MediaPath = sampleMedia.MediaPath;
if (!String.IsNullOrEmpty(sampleMedia.Alt))
{
imageField.Alt = sampleMedia.Alt;
}
else
{
imageField.Alt = sampleMedia.DisplayName;
}
home.Editing.EndEdit();
}
请检查 https://sdn.sitecore.net/upload/sitecore6/64/content_api_cookbook-usletter.pdf 4.1.7 如何访问图像字段