如何单独渲染媒体库项目?
如何使用 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 事件进行一些手动分配,但我不清楚如何去做。我觉得我在这里错过了一些非常简单的东西。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
好吧...我最初很难回答这个问题,因为我从错误的角度思考这个问题。关键是在这种情况下不使用 Sitecore 控件。您真正需要做的只是从 Sitecore API 获取 URL 并使用标准 HTML 控件:
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:
但是,我知道这是一个老问题:
您可以使用以下内容:
或将 FieldRenderer 替换为 sc:Image。
I'm aware it's an old question, however:
You could use the following:
Or replace the FieldRenderer with the sc:Image.
我一直在想同样的事情,并且我意识到有一个很大的区别:FieldRenderer(和 sc:Image)是Field渲染器... MediaItem 不是字段,而是项目。这就是问题所在:我们应该使用图像字段,或者正如公认的答案所述:使用纯 html。
I've been wondering the same thing, and I've realized that there's one big difference: FieldRenderer (and sc:Image) are FieldRenderers... A MediaItem is not a field, but an item. That's where the problem is: we should use Image fields, or as the accepted answer states: use plain html.