Попытка встроить DataItem в свойство ImageUrl элемента управления asp: Image - PullRequest
0 голосов
/ 03 октября 2009

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

* * Тысяча два / profilepics /% 3C% 25 # DataBinder.Eval (Container.DataItem,% 20% 22% 22usernameFrom)% 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 ]

1 голос
/ 03 октября 2009

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

<img src='/profilepics/<%#Eval("username") %>.jpg' />
0 голосов
/ 03 октября 2009

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

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

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

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

...