当我在转发器中使用它时,我没有让EPiImage向我显示图像。
如果我将调整器移到Repeater之外,它就像一个魅力......
我需要考虑一些特别的事情吗?
<asp:Repeater ID="PageMenu" runat="server">
<HeaderTemplate>
<nav id="InlineSubNav">
<ul>
</HeaderTemplate>
<ItemTemplate>
<EPiImage:EPiImageResizer PropertyName="Image" Width="150" Height="150" Transformation="ScaleToFill" runat="server" />
<EPiServer:Property PropertyName="MainIntro" runat="server" />
<EPiServer:Property PropertyName="PageLink" runat="server" />
</ItemTemplate>
<FooterTemplate>
</ul>
</nav>
</FooterTemplate>
</asp:Repeater>
答案 0 :(得分:1)
从EPiImage的源代码可以看出,它不起作用/它不受支持。 您可以尝试为每个项目设置PageLink属性。
答案 1 :(得分:1)
根据EPIImageResizer的源代码,Render方法将从另一个页面中选择属性,只要设置了PageLink:
//If PageLink is set use that page instead of the current page
if (PageLink != PageReference.EmptyReference)
PageDataToUse = DataFactory.Instance.GetPage(PageLink);
if (PageDataToUse[PropertyName] != null)
{
ImageUrl = PageDataToUse[PropertyName].ToString();
因此,如果您正确设置PageLink属性,那么应该没有问题。
尝试使用绑定语法在转发器的ItemTemplate中填充PageLink属性,使用如下内容:
PageLink="<%# ((PageData)Container.DataItem).PageLink %>"
或者通过订阅转发器的ItemDataBound事件来设置代码中的值,使用e.Item.FindControl方法检索EPiImageResizer控件并使用从e.Item.DataItem.PageLink
答案 2 :(得分:1)
在EPiImage 2.5中,数据绑定的问题已得到解决。
通过指定PropertyName和PageLink属性,它现在可以正常工作
<EPiImage:EPiImageResizer PropertyName="Image" PageLink="<%# Container.CurrentPage.PageLink %>" Width="150" Height="150" Transformation="ScaleToFill" runat="server" />