将System.Drawing.Image绑定到ASP.Net中的Gridview

时间:2011-08-26 14:10:47

标签: c# asp.net image gridview

我已经使用ImageField类型的列定义了gridview控件,并将gridview绑定到List<MyRecord>

MyRecord包含System.Drawing.Image类型的属性,但图像不会在网格视图中呈现。

有很多文章使用URL字段重新绑定,指向(比方说)一个jpg文件......但我有实际的图像,而不是文件。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

像本文一样创建自定义ImageHandler描述:

Image Handling In ASP.NET

答案 1 :(得分:0)

这不是ImageField的工作方式。它需要图像的URL。

<asp:ImageField DataImageUrlField = "ImageUrl" ...

答案 2 :(得分:0)

Handler.ashx工作了......谢谢

在代码中,我设置了ImageUrl = string.Format("~/HandlerGetImage.ashx?id={0}", imageNumber);

这会动态调用Handler,在其中我通过

获取图像索引
string v = context.Request.QueryString["id"];

然后,以下内容返回图像:

   int ix = Convert.ToInt32(v);
   MemoryStream ms = new MemoryStream(Query.imageList[ix]); // imagelist is created elsewhere
   System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);

   context.Response.ContentType = "image/jpeg";

   //saving bitmap image
   returnImage.Save(context.Response.OutputStream,
   System.Drawing.Imaging.ImageFormat.Jpeg);
   returnImage.Dispose();