簡體   English   中英

在ASP.NET中將Eval與ImageURL綁定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM