[英]DevExpress GridControl image column displays images like System.Byte[]
[英]I want to call images from database in to ASP:repeater control but I am getting <image src“System.Byte[]”> in result
这是我在aspx文件中的代码
cnn.Open();
SqlDataAdapter da1 = new SqlDataAdapter("select * from carousel", cnn);
DataTable dt1 = new DataTable();
da1.Fill(dt1);
Rp1.DataSource = dt1;
Rp1.DataBind();
cnn.Close();
这是中继器
<asp:Repeater id="Rp1" runat="server">
<ItemTemplate>
<div class="item">
<asp:Image ID="Image1" ImageUrl='<%# Eval("image") %>' runat="server" />
</div>
</ItemTemplate>
<footertemplate></footertemplate>
</asp:Repeater>
我尝试了一切,但是每次我真的想要一些帮助时,我都会得到成果,我是ASP.Net的新手。
这是因为来自数据库的值是表示图像实际数据的字节数组。 img
标签的src
需要图像的URL。 基本上有两种方法可以解决此问题...
src
属性中。 在线上有很多关于第一个选项的教程。 这是通过Google的快速搜索找到的,还有其他搜索条件。 从本质上讲,处理程序将执行的操作是接受查询字符串上的标识符,使用该标识符从数据库中获取图像,然后将适当的标头和内容写入响应。 src
属性的URL将是该处理程序。 就像是:
ImageUrl='<# "~/handler.ashx?id=" + Eval("id") #>'
(或者您的任何数据绑定数据用作图像的标识符。)
假设您在数据库“ ImageName”中的图像列名称是
解决方案1:如果您的图片在根文件夹中
<img src='<%#Eval("ImageName")%>' alt="" />
OR
<asp:Image ID="Image1" ImageUrl='<%#Eval("ImageName")%>' runat="server" />
解决方案2:如果您的图像在图像文件夹中
<img src='<%# "images/" + Eval("ImageName") %>' alt=""/>
要么
<asp:Image ID="Image1" ImageUrl='<%# "images/" + Eval("ImageName") %>' runat="server" />
您的最终解决方案:
<asp:Repeater id="Rp1" runat="server">
<ItemTemplate>
<div class="item">
<img src='<%#Eval("ImageName")%>' alt="" />
OR
<asp:Image ID="Image1" ImageUrl='<%# "images/" + Eval("ImageName") %>' runat="server" />
</div>
</ItemTemplate>
<footertemplate></footertemplate>
</asp:Repeater>
您需要在URI中为IMG HTML标签进行转换:
<img src="<%# System.Text.Encoding.ASCII.GetString(Eval("bynarydatacolumn")) %>" />
或同等学历。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.