#episerver #episerver-6
#episerver #episerver-6
Вопрос:
Я не получаю 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>
Ответ №1:
Согласно исходному коду EPIImageResizer, метод визуализации выберет свойство с другой страницы, при условии, что установлена ссылка на страницу:
//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, проблем возникнуть не должно.
Попробуйте использовать синтаксис привязки для заполнения свойства PageLink в ItemTemplate на повторителе, используя что-то вроде этого:
PageLink="<%# ((PageData)Container.DataItem).PageLink %>"
В качестве альтернативы задайте значение в коде, подписавшись на событие ItemDataBound повторителя, извлеките элемент управления EPiImageResizer с помощью e.Item.метод FindControl и установка ссылки на страницу с использованием значения, полученного из e.Item.Элемент данных.Ссылка на страницу
Комментарии:
1. Это было исправлено в epiimage 2.5
Ответ №2:
Насколько я могу видеть из исходного кода EPiImage, это не будет работать / это не поддерживается. Вы могли бы попробовать установить свойство PageLink для каждого элемента.
Комментарии:
1. Я согласен, знает ли EPiImageResizer о контексте привязки данных? Если нет, вам нужно будет привязать ссылку на страницу.
2. Я попытался добавить ссылку на страницу, но затем мне не удалось преобразовать объект типа ‘System.Int32’ в тип ‘System. Строка’.
Ответ №3:
В EPiImage 2.5 была исправлена проблема с привязкой к данным.
указав атрибут propertyName и PageLink, теперь это работает
<EPiImage:EPiImageResizer PropertyName="Image" PageLink="<%# Container.CurrentPage.PageLink %>" Width="150" Height="150" Transformation="ScaleToFill" runat="server" />