如何从代码隐藏编辑Sitecore图像字段

时间:2015-12-17 13:06:25

标签: c# sitecore sitecore7.2

我的网站核心项目“CurrentItem”包含字段“image”。我正在从代码后面编辑它,如下所示:

//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;但是仍然没有运气。

2 个答案:

答案 0 :(得分:6)

您需要将该字段设为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博文,了解有关6.X版本的更多解释。

答案 1 :(得分:2)

您可以使用Sitecore.Data.Fields.ImageField类更新Image字段。例如, 更新Master中/ Sitecore / Content / Home项目中名为ImageField的Image字段 数据库到/ Sitecore /媒体库/图像/示例图像:

#include<iostream.h>
namespace first_space{
    int first_var;
}
namespace second_space{
    int first_var = 1;
}
int main()
{
    cout<<"Hello World"<<endl;
    cout<<"First Namespace Variable using namespace identifier:"<<first_space::first_var<<endl;
    using namespace first_space;
    cout<<"First Namespace Variable using using identifier:"<<first_var<<endl;
    using namespace second_space;
    cout<<"Second Namespace Variable using using identifier:"<<first_var<<endl;
}

请在4.1.7如何访问图像字段

上查看https://sdn.sitecore.net/upload/sitecore6/64/content_api_cookbook-usletter.pdf