2011-08-26 64 views
1

我已經定義了一個GridView控件,其中有一列類型爲ImageField,我將gridview綁定到List<MyRecord>將System.Drawing.Image綁定到ASP.Net中的Gridview中

MyRecord包含System.Drawing.Image類型的屬性,但圖像不在gridview中呈現。

有很多文章重新綁定使用URL字段指向(說)一個JPG文件...但我有實際的圖像,而不是一個文件。

有什麼建議嗎?

回答

0

創建自定義ImageHandler喜歡這篇文章介紹:

Image Handling In ASP.NET

+0

這項工作? ImageField不希望有一條路嗎? –

+0

謝謝..我實現了一個自定義ImagHandler,我現在看到gridview的整個列有相同的圖像。但是,我有一個List <>的圖像,並不清楚如何讓Handler調用返回每行圖像。也許我必須構建一個臨時SQL數據庫並將gridview綁定到該數據庫。 – Dave31836

0

這就是不ImageField的是如何工作的。它期望圖像的URL。

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

URL通常指向文件,如pic.jpg .....但在這種情況下,您可以指向Handler頁面Handler.ashx,該頁面被編譯爲接受URL請求並返回圖像,它存儲在一個文件中。 – Dave31836

+0

@ Dave31836:是的,好點。這也可以很好地工作。 –

0

的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();