在中继器中使用EPiImageResizer


当我

在中继器中使用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" />

相关内容

  • 没有找到相关文章

最新更新