Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I render a Media Library item by itself?

Tags:

sitecore

How do I render a Media Library item image in a sublayout with Sitecore controls? With a normal content Item that has an "Image" field it's a piece of cake... just use the sc:Image or FieldRenderer control. But I have something like this:

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

And the code behind:

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

So... what goes in the ItemTemplate? I'm OK with using the ItemDataBound event to do some manual assignment, but it's unclear to me how to go about that. I feel like I'm missing something really simple here.

like image 219
Bryan Avatar asked Sep 30 '10 21:09

Bryan


1 Answers

OK... I had trouble answering this originally because I was thinking about it from the wrong angle. The key is NOT using Sitecore controls in this scenario. What you really need to do is just get the URL from the Sitecore API and use standard HTML controls:

<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>
like image 81
Bryan Avatar answered Nov 20 '22 11:11

Bryan