我正在尝试使用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
?
答案 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
设置为代码隐藏中的public
或protected
答案 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 = "...";