asp.net Gridview ImageField替代图像

时间:2013-11-25 14:14:52

标签: asp.net gridview imagefield

我在gridview下面有一个与UserID号码链接的图像字段。 如果图片dosnt存在于较旧的特定区域以获得标准备用图片,该怎么办?

                <ItemTemplate>
                    <asp:Image ID="MainPic" runat="server" 
                        ImageUrl='<%# GetImageUrl(Eval("PerfilId") as string)%>' />
                </ItemTemplate>

...

    protected string GetImageUrl(string dbImgURL)
    {
        if (File.Exists(dbImgURL))
        {
            return dbImgURL;
        }
        else
        {
            return "AdminFotoUser/UserPics/BGP1.png";
        }
    }

1 个答案:

答案 0 :(得分:-1)

您可以检查GridView的onRowDataBound事件中的图像路径,如果文件不存在,则将其更改为公共图像。 使用System.IO;

if (File.Exists(path)) 
                {
                    Console.WriteLine("file exists");
                }

否则    //查找控件并将其绑定到公共图像

您可以采用不同的方式重新设计网格: - 而不是使用图像字段列,您可以使用这样的模板列: 代码:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Image runat="server" ID="myImg"
            ImageUrl='<%# GetImageUrl(Eval(col2) as string) %>' />
    </ItemTemplate>
</asp:TemplateField>

然后在你的代码后面,你创建了一个函数来返回正确的图像url: 码: 更新了Ans

//Send Image name from database (DataGrid) as dbImgURL
protected string GetImageUrl(string dbImgURL)
{
   if (File.Exists(dbImgURL)) 
    {
       return dbImgURL;          
    }
   else
    {
       return "Green.gif";
    }
}