在中继器中使用EPiImage时,我没有得到EPiImage向我显示图像。
如果我将调整器移到中继器之外,它就像一个魅力。
有什么特别
的需要考虑吗?<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>
根据 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 获取的值设置 PageLink
据我从EPiImage的源代码中看到,它不起作用/不受支持。您可以尝试为每个项目设置 PageLink 属性。
在EPiImage 2.5中,数据绑定的问题已得到修复。
通过同时指定属性名称和页面链接属性,它现在可以工作
<EPiImage:EPiImageResizer PropertyName="Image" PageLink="<%# Container.CurrentPage.PageLink %>" Width="150" Height="150" Transformation="ScaleToFill" runat="server" />