Как мне сделать элемент библиотеки мультимедиа отдельно? - PullRequest
8 голосов
/ 01 октября 2010

Как отобразить изображение элемента библиотеки мультимедиа в подслое с помощью элементов управления Sitecore?С обычным содержимым Предмет, который имеет поле «Изображение», это кусок пирога ... просто используйте элемент управления sc:Image или FieldRenderer.Но у меня есть что-то вроде этого:

<asp:Repeater ID="rptImages" runat="server">
  <ItemTemplate>
    <sc:FieldRenderer  ????>
  </ItemTemplate>
</asp:Repater>

И код позади:

rptImages.DataSource = Sitecore.Context.Database.SelectItems("/sitecore/Media Library/Images/Some Image Folder/*")
rptImages.DataBind();

Итак ... что происходит в ItemTemplate?Я в порядке, используя событие ItemDataBound для некоторого ручного назначения, но мне неясно, как это сделать.Я чувствую, что здесь упускаю что-то очень простое.

Ответы [ 3 ]

11 голосов
/ 01 октября 2010

ОК ... У меня были проблемы с ответом на этот вопрос, потому что я думал об этом не с той точки зрения.Ключ НЕ использует элементы управления Sitecore в этом сценарии.Что вам действительно нужно сделать, это просто получить URL-адрес из API Sitecore и использовать стандартные элементы управления HTML:

<asp:Repeater ID="rptImages" runat="server" OnItemCommand="rptImages_ItemCommand">
    <ItemTemplate>
        <img src='<%# Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl((Sitecore.Data.Items.Item)Container.DataItem)) %>' />
    </ItemTemplate>
</asp:Repeater>
0 голосов
/ 28 апреля 2015

Мне было интересно то же самое, и я понял, что есть одно большое отличие: FieldRenderer (и sc: Image) равны Field Renderers ... MediaItem - это не поле, а пункт. Вот в чем проблема: мы должны использовать поля изображения или, как говорится в принятом ответе: использовать обычный html.

0 голосов
/ 27 февраля 2013

Я знаю, что это старый вопрос, однако:

Вы можете использовать следующее:

<asp:Repeater ID="rptImages" runat="server">
    <ItemTemplate>
        <sc:FieldRenderer ID="image" runat="server" FieldName="FieldName" 
              Item="<%# Container.DataItem %>
    </ItemTemplate>
</asp:Repeater>

Или заменить FieldRenderer на sc: Image.

...