抱歉令人不安。我试图在asp.net gridview中显示选定的字段。我可以显示除“product_img”之外的所有内容,我应该在gridview中显示相关图片。GridView无法显示图像
问题是在gridview中,当我将图像控件的图像url附加到代码不起作用,因为它给我空图像/断开的图像链接。
是我的方法将dr.read上的路径绑定到gridview中的imageURL错误? 我已经在页面后面编辑了我的代码,并将aspx页面设计为底部。
设计师页面的代码位于下方,向下滚动。谢谢。
protected void gvShowInsert_SelectedIndexChanged(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("SELECT product_cakeName, product_price,
product_qty,product_desc,product_img FROM Tbl_Products", conn);
conn.Open();
SqlDataReader dr;
dr = cmd.ExecuteReader();
if(dr.Read())
{
//Context.Response.BinaryWrite((byte[])dr[dr.GetOrdinal("product_img")]);
byte[] path = (byte[])dr["product_img"]; //read the path of image
}//imageControl.ImageUrl = path; //set the path to image control
gvShowInsert.DataSource = dr;
gvShowInsert.DataBind();
dr.Close();
conn.Close();
}
这是我设计的aspx:
<Columns>
<asp:TemplateField HeaderText="cake-name">
<ItemTemplate>
<asp:Label ID="lblHeaderName"
runat="server"Text='<%#Eval("product_cakeName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="price">
<ItemTemplate>
<asp:Label ID="lblHeaderPrice" runat="server" Text='<%#Eval("product_price")
%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="qty">
<ItemTemplate>
<asp:Label ID="lblHeaderQty" runat="server" Text='<%#Eval("product_qty") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="desc">
<ItemTemplate>
<asp:Label ID="lblHeaderDesc" runat="server" Text='<%#Eval("product_desc") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="img">
<ItemTemplate>
<asp:Image ID="imageControl" runat="server" ImageUrl='<%#"InsertProd.aspx.cs?path" %>' >
</asp:Image>
</ItemTemplate>
</asp:TemplateField>
</Columns>
图像存储在数据库中,而不是在文件系统 – 2012-02-20 00:59:18
你需要一个处理器,这里指:http://stackoverflow.com/questions/1738020/bytearray-to -image-asp-net – Ricketts 2012-02-20 01:10:35
谢谢你们!这个处理程序对于我来说是太多的信息了。因此,我会尝试直接从DB分配值,如上所示。谢谢大家的帮助,非常感谢:D – jan 2012-02-20 04:45:35