Связывание Eval с ImageURL в ASP.NET - PullRequest
2 голосов
/ 16 июля 2009

Я пытаюсь связать изображение, используя Eval() с VB.NET и ASP.NET, но сталкиваюсь с проблемами:

Фрагмент кода

<bri:ThumbViewer Id="Th1"  runat="server" 
   ImageUrl='<%# Eval("Name", "~/SiteImages/ram/3/{0}") %>' 
   Height="100px" 
   Width="100px" 
 />

Я установил strImagePath в коде позади как:

strImagePath  ="~/SiteImages/ram/3/"

Как я могу заменить:

~/SiteImages/ram/3/{0} 

с переменной strImagePath?

Ответы [ 4 ]

5 голосов
/ 09 мая 2010

просто используйте

<asp:Image id="abc" ImageUrl =<%# string.Format("~/SiteImages/ram/3/{0}",Eval("imagepath"))%>

imagepath может быть из datatable или cs

1 голос
/ 16 июля 2009

Лично я предпочитаю делать эти вещи в коде прямо как

<bri:ThumbViewer ID="thumbViewer" runat="server" ... />

и затем в коде у вас есть метод инициализации или DataBind (), где вы пишете

thumbViewer.ImageUrl= Path.Combine(ImagePath, Name); //or something similar, you have to check

Это потому, что особенно когда вы разрабатываете в команде, это довольно неудобно и подвержено ошибкам, если люди делают некоторые привязки в коде ASPX напрямую, используя Eval (...), а некоторые - в коде. Я предпочитаю использовать codebehind, потому что тогда вы сразу видите, что происходит на странице, просто просматривая ваш код, в то время как ваш ASPx-код предназначен только для макета, определения элементов управления (со свойствами) и т. Д.

0 голосов
/ 16 июля 2009

Можете ли вы просто написать (и простите меня, если это неправильно), если оно постоянно:

<bri:ThumbViewer ImageUrl='~/SiteImages/ram/3/<%# Eval("Name")%>' Height="100px" Width="100px" Id="Th1"  runat="server"/>

А если нет:

<bri:ThumbViewr ImageUrl='<#Eval("ImagePath + Name") %>' ... />

//And in your codebehid:
public property ImagePath { get; set; }
...
ImagePath = "...";
0 голосов
/ 16 июля 2009
string strImagePath = "aPage.aspx";
string pathFormat = "~/SiteImages/ram/3/{0}";
string path = String.Format(path, strImagePath);

Это немного многословно, но вы поняли идею. Вам нужен метод String.Format.

Подробнее об этом можно прочитать на сайте MSDN -> String.Format

Так что в вашем случае это будет:

<bri:ThumbViewer Id="Th1"  runat="server" ImageUrl='<%# Eval("Name", String.Format("~/SiteImages/ram/3/{0}", strImagePath)) %>' Height="100px" Width="100px"/>

, пока strImagePath установлен в public или protected в вашем коде позади

...