Попытка встроить DataItem в свойство ImageUrl элемента управления asp:Image.
-
19-09-2019 - |
Вопрос
У меня есть следующий элемент управления изображением в повторителе.Я пытаюсь отобразить имя пользователя между ~/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' />