[英]Binding Eval with an ImageURL in ASP.NET
我正在嘗試使用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
?
只需使用
<asp:Image id="abc" ImageUrl =<%# string.Format("~/SiteImages/ram/3/{0}",Eval("imagepath"))%>
imagepath可能來自datatable或cs
我個人更喜歡直接在代碼背后做這些事情,就像
<bri:ThumbViewer ID="thumbViewer" runat="server" ... />
然后在后面的代碼中,您可以在其中編寫一些initialize或DataBind()方法
thumbViewer.ImageUrl= Path.Combine(ImagePath, Name); //or something similar, you have to check
這是因為,特別是當您在團隊中開發時,如果人們直接使用Eval(...)在ASPX代碼中進行某些綁定以及在其背后的代碼中進行某些綁定,則非常不便且容易出錯。 我更喜歡使用后台代碼,因為這樣您就可以通過僅查看代碼立即看到頁面上發生了什么,而您的ASPx代碼僅用於布局,控件定義(帶有屬性)等。
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
如果它是常數,你能寫(如果錯了,請原諒我):
<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 = "...";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.