我试图从数据库中列出我页面上的图像。当我评估图像时,它只显示文本"System.byte"
。
以下是代码:
<asp:Repeater ID="repCategory" runat="server">
<ItemTemplate>
<div id="DescofTiles">
<p id="tiles1"><%#Eval("categoryID") %>: </p>
<p id="tiles2"><%#Eval("categoryName") %> </p>
<br />
<p id="tiles3"><%#Eval("Description") %> </p>
<br />
<p id="tiles4"><%#Eval("Picture") %> </p>
<p id="tiles5">
<a id="udb" href="#">
<img src="Contents/images/update.png" /></a>
<a id="udb" href="DeleteCategory.aspx?id=<%#Eval("categoryID")%>">
<img src="Contents/images/delete.jpg" /></a>
<asp:LinkButton ID="LinkButton2" runat="server"
OnCommand="LinkButton1_Click"
CommandArgument='<%#Eval("categoryID")%>'>
<img src="Contents/images/delete.jpg" alt="delete group" />
</asp:LinkButton>
</p>
我该怎么做才能让它显示为图像,而不是文字&#34; System.byte&#34;?
答案 0 :(得分:0)
您似乎将图像存储在数据库中,然后将它们加载到byte[]
中。 (这是正确的吗?你的问题并不清楚。)
以下是显示这些图像的一些选项:
将图像存储到(临时)文件
File.WriteAllBytes(Server.MapPath("~/temp/image.png", byteArrayFromDb));
Image
控件并相应地设置ImageUrl
:<asp:Image ImageUrl="~/temp/image.png
... /&gt;`将图片数据嵌入数据URI
Image
控件,例如<asp:Image runat="server" id="img" .../>
byte[]
转换为图片URI:img.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayFromDb);
通过HttpHandler提供图片
ImageHandler.ashx
)ImageUrl="ImageHandler.ashx?id=123"