Я определил элемент управления gridview со столбцом типа ImageField
и привязываю gridview к List<MyRecord>
.
MyRecord включает свойство типа System.Drawing.Image
, но изображение не отображается в сетке.
Существует множество статей, которые повторно связываются с использованием поля URL, которое указывает (скажем) на файл jpg ... но у меня есть фактическое изображение, а не файл.
Какие-либо предложения?
3 ответа
Создайте собственный ImageHandler, как описано в этой статье:
Обработка изображений в ASP.NET
ImageField работает не так. Ожидается URL-адрес изображения.
<asp:ImageField DataImageUrlField = "ImageUrl" ...
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();
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.