我已经定义了一个GridView控件,其中有一列类型为ImageField
,我将gridview绑定到List<MyRecord>
。将System.Drawing.Image绑定到ASP.Net中的Gridview中
MyRecord包含System.Drawing.Image
类型的属性,但图像不在gridview中呈现。
有很多文章重新绑定使用URL字段指向(说)一个JPG文件...但我有实际的图像,而不是一个文件。
有什么建议吗?
我已经定义了一个GridView控件,其中有一列类型为ImageField
,我将gridview绑定到List<MyRecord>
。将System.Drawing.Image绑定到ASP.Net中的Gridview中
MyRecord包含System.Drawing.Image
类型的属性,但图像不在gridview中呈现。
有很多文章重新绑定使用URL字段指向(说)一个JPG文件...但我有实际的图像,而不是一个文件。
有什么建议吗?
创建自定义ImageHandler喜欢这篇文章介绍:
这就是不ImageField的是如何工作的。它期望图像的URL。
<asp:ImageField DataImageUrlField = "ImageUrl" ...
URL通常指向文件,如pic.jpg .....但在这种情况下,您可以指向Handler页面Handler.ashx,该页面被编译为接受URL请求并返回图像,它存储在一个文件中。 – Dave31836
@ Dave31836:是的,好点。这也可以很好地工作。 –
的Handler.ashx工作...谢谢
在代码中,我设置了ImageUrl = string.Format("~/HandlerGetImage.ashx?id={0}", imageNumber);
这个动态调用处理程序中,我得到
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();
这项工作? ImageField不希望有一条路吗? –
谢谢..我实现了一个自定义ImagHandler,我现在看到gridview的整个列有相同的图像。但是,我有一个List <>的图像,并不清楚如何让Handler调用返回每行图像。也许我必须构建一个临时SQL数据库并将gridview绑定到该数据库。 – Dave31836