我有一个转发器来显示照片。它是这样填充的:
AcctRepeaterPhoto.DataSource = "";
dDateID = Convert.ToInt32(lDateID.InnerText);
saqConnection.conn = MySQLConn;
sqlDataAdapter adp = new SqlDataAdapter("Select * from MyTable", conn)
DataSet ds = New Dataset();
adp.Fill(ds, "MyPhotoPage");
AcctRepeaterPhoto.DataSource = ds;
AcctRepeaterPhoto.DataBind();
ds.Dispose;
conn.Close;
我100%确定这是有效的,因为我在表单的其他3个部分使用了几乎完全相同的代码,而且它们都运行良好。
ASP方面,我不太确定...
大部分内容都有道理,但显示图像的线条没有显示任何内容:
<asp:Image runat="server" ImageUrl='<%# string.Format("D:/MyPics/Photos/{0}",
Eval("PhotoLink")) %>' />
当我查看生成页面的源代码时,它将解析为
<img src="D:/MyPics/Photos/MyImageName.jpg">
但它只显示无效图像显示的空方格。
如果我将其切换为:
<asp:Image runat="server" ImageUrl='<%# string.Format("D:\\MyPics\\Photos\\{0}",
Eval("PhotoLink")) %>' />
它仍然只显示空方块,但这次页面的来源显示
<img src="D:\MyPics\Photos\MyImageName.jpg">
我已经检查了路径,并且在&#34; D:\ MyPics \ Photos \&#34;中有一个文件。叫&#34; MyImageName.jpg&#34;。
任何人都知道发生了什么?为什么这张图片没有显示?
答案 0 :(得分:1)
您需要使用图像的URL而不是文件路径,
ImageUrl属性采用网址
使用ImageUrl属性指定要显示的图像的URL 图像控件。您可以使用相对或绝对URL。一个 相对URL将图像的位置与该位置相关联 网页未指定服务器上的完整路径。路径是 相对于网页的位置。这使得移动更容易 整个站点到服务器上的另一个目录而不进行更新 代码。绝对URL提供完整路径,因此移动 站点到另一个目录需要您更新代码。
您还可以将物理路径传递给Server.MapPath,如果您拥有此图片文件夹的权限,则会返回图片的正确网址
类似的东西:
<asp:Image runat="server" ImageUrl='<%# Server.MapPath(string.Format("D:/MyPics/Photos/{0}",
Eval("PhotoLink"))) %>' />
答案 1 :(得分:0)
我对此并不完全确定,但根据我的经验, 它通常与〜/
一起使用所以请尝试:~/MyPics/Photos/MyImageName.jpg
也许是因为它总是从家里开始引用