ImageUrl签入gridview

时间:2013-11-26 19:06:08

标签: c# asp.net gridview

我在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
        {
            ???
        }
    }

2 个答案:

答案 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

}