Я определил элемент управления gridview со столбцом типа ImageField и привязываю gridview к List<MyRecord>.

MyRecord включает свойство типа System.Drawing.Image, но изображение не отображается в сетке.

Существует множество статей, которые повторно связываются с использованием поля URL, которое указывает (скажем) на файл jpg ... но у меня есть фактическое изображение, а не файл.

Какие-либо предложения?

1
Dave31836 26 Авг 2011 в 18:10

3 ответа

Лучший ответ

Создайте собственный ImageHandler, как описано в этой статье:

Обработка изображений в ASP.NET

0
rick schott 26 Авг 2011 в 14:17

ImageField работает не так. Ожидается URL-адрес изображения.

<asp:ImageField DataImageUrlField = "ImageUrl" ...
0
James Johnson 26 Авг 2011 в 16:19

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();
0
patmortech 29 Авг 2011 в 12:04