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 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 に答える
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 のソース コードからわかる限り、動作しない/サポートされていません。各項目の PageLink プロパティを設定してみてください。

于 2011-05-24T10:58:11.697 に答える