Попытка встроить DataItem в свойство ImageUrl элемента управления asp:Image
У меня есть следующий контроль изображения в повторителе. Я пытаюсь получить имя пользователя для рендеринга между ~/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" />
2 ответа
Это не будет работать таким образом. Image WebControl не будет принимать такую разметку. Общий метод заключается в использовании события ItemDataBound для назначения источника изображения каждому элементу управления изображением в пределах элемента повторителя.
Если вы хотите использовать эти разметки, не используйте WebControl, попробуйте это:
<img src='<%ResolveClientUrl("~/profilepics")%>/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />
Отказ от ответственности: я не проверял точный код выше, но концепция должна работать.
Вы не можете использовать синтаксис привязки данных внутри серверного элемента управления. Вы пробовали с простым HTML-тегом img вместо этого?
<img src='/profilepics/<%#Eval("username") %>.jpg' />