2014-02-18 40 views
0

我试图在gridview上显示图像为空的替代图像,我使用templatefield显示图像。但我只能输入替代文字。没有办法插入备用默认图像。你能帮我吗?使用templatefield在gridview中显示图像为null时的默认图像

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

回答

1

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

事件:的RowDataBound细胞(模板列)

获得价值

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

这是一个整体的想法,而不是确切的代码,所以请忽略任何打字或代码中的错误。其他的事情是请避免评估。

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是图像文件名要显示当图像为空。