2011-09-05 71 views
0

我忙於在asp.net中創建控件。該控件由一些文本和圖像組成。該圖像將用於顯示圖形。控件通過從數據庫中讀取圖表來獲取圖形的數據。看起來我有兩個選項可以在圖像框中顯示圖形。首先,我可以從數據創建一個jpg文件並將其保存在服務器上。然後我可以將這個文件加載到圖像框中。我認爲如果不同的用戶同時訪問該網站會導致問題,所以我認爲這不是一個好的選擇。其他選項是創建一個名爲輸出文件,輸出這樣的圖形:objBitmap.Save(Response.OutputStream, ImageFormat.Gif)在asp.net中創建動態圖形

然後我可以在我的控制顯示這樣的形象:Image1.ImageUrl = "output.aspx"

,我面臨的問題是,我該怎麼辦從我的控制中獲取數據到輸出頁面?據我所知,太多的數據不能作爲參數傳遞。如果這樣做的另一種更好的方法,請讓我知道

感謝

回答

0

你可以寫的圖像內容output.aspx的響應。像這樣的事情(從我現有的getImage頁面中的一個考慮:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Dim strFilename As String 

     strFilename = Request.QueryString("filename") 

     Dim strPath As String = AppSettings("ProxyImageSavePath") & strFilename 

     Response.Clear() 
     Response.ContentType = "image/jpeg" 

     If Not IO.File.Exists(strPath) Then 
      'erm 
      Response.Write("file not found") 
     Else 
      Response.WriteFile(strPath) 
     End If 

     Response.End() 

    End Sub 

編輯:我剛剛意識到這可能不是你要找的解決方案,你的服務器應該能雖然緩存此

0

你需要處理程序在這篇文章的Protecting Your Images,「創建ImageHandler HTTP處理程序」一節中,你會發現代碼如何編寫處理程序,因此它輸出一個圖像,你不需要全部,它只是示例
您還需要在web.config中註冊處理程序
要參考它Image1.ImageUrl =「handler.ashx?graphdata = xxxx」。使用QueryString獲取數據源以生成圖形。

+0

謝謝,它讓我走上了正軌。所以,我的數據存儲在數據庫的某個表中。我應該發送數據庫中的數據索引以及表名,然後從那裏讀取它?例如:Image1.ImageUrl =「handler.ashx?table = sales&id = 10」。或者有更好的方法來做到這一點。 – Johan

+0

歡迎。這是一個好方法。我會選擇而不是表=銷售的建築類型= s(僅出於安全原因),並基於此,您將決定使用哪個查詢。 –