我有一个像这样的sitecore控件:<sc:Image ID="imgLogo" runat="server" Field="Image"/>
现在当前项目没有Image字段。我在CurrentItem中通过droptree拉这个项目( GetFieldValue 与GetField相同。我正在覆盖Sitecore中的基类):
string countryGuid = CurrentItem.GetFieldValue("Country", null);
Item country = sitecoreDatabase.GetItem(countryGuid);
BindCountryLogo();
现在在Item
我有一张国家徽标的图片。所有我想要出现在sc:Image。
到目前为止,我得到了这个:
private void BindCountryLogo(Item country)
{
Fields.ImageField logoField = country.Fields["Image"];
if (logoField != null && logoField.MediaItem != null)
{
//Sitecore.Data.Items.MediaItem image = new MediaItem(logoField.MediaItem);
//string src = Sitecore.Resources.Media.MediaManager.GetMediaUrl(image);
//imgLogo.DataSource = src;
//imgLogo.ImageUrl = logoField.MediaItem.Source.;
//string src = Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(logoField));
//Sitecore.Data.Items.MediaItem img = new MediaItem(ImageField.Medi)
}
}
他们都没有工作。
答案 0 :(得分:7)
控件具有属性“Item”,您可以将其设置为包含imageField的项目。
您的BindCountryLogo应如下所示:
private void BindCountryLogo(Item country)
{
imgLogo.Item = country;
}
(或者删除BindCountryLogo()方法并在main方法中设置Item;))