Связывание Eval с ImageURL в ASP.NET

2

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

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

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

Я установил strImagePath в code-behind как:

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

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

~/SiteImages/ram/3/{0} 

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

Теги:
eval

4 ответа

5

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

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

путь изображения может быть от datatable или cs

  • 0
    string.Format (X, Eval (Y)) совпадает с Eval (Y, X)
1

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

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

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

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

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

0

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

<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
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 в вашей кодовой строке

Ещё вопросы

Сообщество Overcoder
Наверх
Меню