0

当我在中继器中使用它时,我没有让 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>
4

3 回答 3

1

从 EPiImage 的源代码中我可以看出,它不起作用/不受支持。您可以尝试为每个项目设置 PageLink 属性。

于 2011-05-24T10:58:11.697 回答
1

根据 EPIImageResizer 的源代码,如果设置了 PageLink,Render 方法将从另一个页面中选择属性:

    //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

于 2011-08-31T11:03:56.727 回答
1

在 EPiImage 2.5 中,数据绑定问题已得到修复。

通过同时指定 PropertyName 和 PageLink 属性,它现在可以工作了

<EPiImage:EPiImageResizer PropertyName="Image" PageLink="<%# Container.CurrentPage.PageLink %>" Width="150" Height="150" Transformation="ScaleToFill" runat="server" />
于 2011-09-02T08:51:43.073 回答