我在gridview中使用ItemTemplate来从文件夹中获取图像。在behinde代码上我检查图像是否存在,如果图像没有存在它返回一个替代图片但我不能得到代码,如果图像存在使用模板中的字符串。谢谢你的帮助。
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# GetImageUrl(Eval("PerfilId", "AdminFotoUser/UserPics/{0}.png") as string)%>' />
</ItemTemplate>
“behindecode”
protected string GetImageUrl(string input)
{
if (input.Equals("no"))
{
return "AdminFotoUser/UserPics/BGP1.png";
}
else
{
???
}
}
答案 0 :(得分:0)
如果我正确理解您的问题,您可以使用FileInfo.Exists来测试文件是否存在。
var path = Server.MapPath("~/AdminFotoUser/UserPics/BGP1.png");
var fileInfo = new FileInfo(path);
if (fileInfo.Exists)
{
// File exists in the folder
}
答案 1 :(得分:0)
尝试仅传递图像ID它更干净,因为(我猜)所有图像都将位于同一个文件夹中,
protected string GetImageUrl(string input)
{
var filepath = Server.MapPath(string.format("~/AdminFotoUser/UserPics/{0}.png",input));
return File.Exists(filepath)?
string.format("AdminFotoUser/UserPics/{0}.png",input):
"AdminFotoUser/UserPics/default.png"; // otherwise return default pic
}