Попытка встроить DataItem в свойство ImageUrl элемента управления asp:Image.

StackOverflow https://stackoverflow.com/questions/1512585

Вопрос

У меня есть следующий элемент управления изображением в повторителе.Я пытаюсь отобразить имя пользователя между ~/profilepics/ и .jpg, но получаю следующий визуализированный вывод

/profilepics/%3C%25#DataBinder.Eval(Container.DataItem,%20%22usernameFrom%22)%20%25%3E.jpg

Вот разметка

<asp:Image ID="Image1" runat="server" ImageUrl='~/profilepics/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />

Я тоже попробовал то же самое, но с двойными кавычками и получил тот же результат.

<asp:Image ID="Image1" runat="server" ImageUrl="~/profilepics/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg" />
Это было полезно?

Решение

Так не пойдет.Image WebControl не будет принимать такую ​​разметку.Распространенный метод — использовать событие ItemDataBound для назначения источника изображения каждому элементу управления изображением в элементе повторителя.

Если вы хотите использовать эти разметки, не используйте WebControl, попробуйте следующее:

<img src='<%ResolveClientUrl("~/profilepics")%>/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />

Отказ от ответственности:Я не проверял точный код, приведенный выше, но концепция должна работать.

Другие советы

Вы не можете использовать синтаксис привязки данных внутри серверного элемента управления.Пробовали ли вы вместо этого использовать простой HTML-тег img?

<img src='/profilepics/<%#Eval("username") %>.jpg' />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top