在ASP.NET中将Eval与ImageURL绑定

时间:2009-07-16 05:34:16

标签: c# .net asp.net vb.net eval

我正在尝试使用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 个答案:

答案 0 :(得分:5)

只需使用

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

imagepath可以来自datatable或cs

答案 1 :(得分:1)

我个人更喜欢直接在代码隐藏中执行这些操作,如

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

然后在代码隐藏中你有一些初始化或DataBind()方法,你写

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

这是因为特别是当您在团队中进行开发时,如果人们使用Eval(...)直接在ASPX代码中进行某些绑定,而在代码隐藏中使用某些绑定,则会非常不方便且容易出错。我更喜欢使用代码隐藏,因为您只需查看代码即可立即看到页面上发生了什么,而您的ASPx代码仅用于布局,控件定义(带属性)等...

答案 2 :(得分:0)

string strImagePath = "aPage.aspx";
string pathFormat = "~/SiteImages/ram/3/{0}";
string path = String.Format(path, strImagePath);

有点冗长,但你明白了。您正在寻找的是String.Format方法。

您可以在MSDN上阅读更多相关信息 - &gt; String.Format

所以在你的情况下会是:

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

只要strImagePath设置为代码隐藏中的publicprotected

答案 3 :(得分: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 = "...";