2

我有一个这样的站点核心控件:<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)
        }
     }

他们都没有工作。

4

1 回答 1

7

该控件有一个属性“Item”,您可以将其设置为包含 imageField 的项目。

您的 BindCountryLogo 应如下所示:

private void BindCountryLogo(Item country)
{
    imgLogo.Item = country;    
}

(或删除 BindCountryLogo() 方法并在 main 方法中设置 Item ;) )

于 2012-11-28T23:41:42.567 回答