在转发器中显示字节图像

时间:2014-09-04 11:33:08

标签: c# sql asp.net image repeater

我想在asp转发器中使用来自数据库图像表的一些图像。

HTML

 <asp:Repeater ID="rpt_" runat="server">                       
   <ItemTemplate>
     <li>
<img src="<%="data:image/jpg;base64," + Convert.ToBase64String((byte[])Eval("Photo")) %>" alt="" />
     </li>
   </ItemTemplate>
 </asp:Repeater>

C#

private void Load_()
{
    ClassDo class_ = new ClassDo;
    DataTable dt = class_.Ann().Tables[0];
    rpt_.DataSource = dt;
    rpt_.DataBind();
}

这些是我的代码,并告诉我错误我无法显示图像。 HTML

<img alt="" src="<%="data:image/jpg;base64," + Convert.ToBase64String(Class_._image) %>" />

C#

Class_._image = (byte[])dt.Rows[0]["Photo"];

它的工作原理与其他地方类似,但是使用转发器我无法用Eval读取它。

有没有办法显示图片?

1 个答案:

答案 0 :(得分:2)

你能试试吗?

创建一个功能

public string GetImage(object img)
{
   return "data:image/jpg;base64," + Convert.ToBase64String((byte[])img);
}

然后像这样更改你的声明

<asp:Image ImageUrl='<%# GetImage(Eval("Photo")) %>' />