使用templatefield在gridview中使用图像为空时显示默认图像

时间:2014-02-18 03:16:06

标签: c# asp.net

我尝试在我的gridview上的图像为空时显示替代图像,我使用模板字段来显示图像。但我只能输入替代文字。无法插入备用默认图像。你们能帮助我吗?

  <asp:TemplateField>
     <HeaderTemplate>
        Question Image
      </HeaderTemplate>
     <ItemTemplate>
      <img src='data:image/jpg;base64,<%#     Eval("QuestionImage") != System.DBNull.Value ? Convert.ToBase64String((byte[])Eval("QuestionImage")) : string.Empty %>'
                     alt="No image" height="100" width="200" />

    </ItemTemplate>
  </asp:TemplateField>

2 个答案:

答案 0 :(得分:1)

一个选项可以是行数据绑定事件,您可以转到该单元格(模板列)并提供图像源。如果为null,则将其更改为默认图像。例如:

事件:RowDatabound

获取单元格的值(模板列)

if(!string.IsNullOrEmpty(db.imagePath))
{
imgUser.src=db.imagePath;
}
else
{
imgUser.src="/Images/default.jpg";
}

这是一个总体想法,而不是确切的代码,因此请忽略任何输入或代码错误。其他的事情是请避免评估。

答案 1 :(得分:0)

您可以尝试使用 img 标记的代码吗?

<img src='<%# (Eval("QuestionImage") != System.DBNull.Value ? "data:image/jpg;base64," + Convert.ToBase64String((byte[])Eval("QuestionImage")) : "default.jpg") %>'
height="100" width="200" />

其中 default.jpg 是图像为空时要显示的图像的文件名。