程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第八講 ASP.NET圖形開發帶超鏈接的餅圖(9)

C#發現之旅第八講 ASP.NET圖形開發帶超鏈接的餅圖(9)

編輯:關於C語言

這個函數中首先是連接數據庫,並執行一個 SQL查詢,查詢結果是10個客戶編號,名稱及其名下所有的訂單總金額。

創建一個餅 圖文檔對象,然後遍歷查詢結果,對每一條記錄都調用餅圖文檔對象的Add方法向餅圖文檔中 添加一個餅圖項目。

調用餅圖文檔對象的RefreshState方法刷新餅圖的內部狀態,然 後將餅圖對象保存到Session中拱將來的圖片服務頁面使用。然後設置lblResult標簽的文本 為餅圖對象生成的Html字符串。

這裡還有一個DataGrid只是用來簡單的顯示餅圖文檔 的內容。

圖片服務頁面 pIEimage.ASPx

本頁面用來生成餅圖圖形的圖像文檔 ,該頁面沒有任何Html代碼,其C#代碼也很簡單,只有一個Page_Load函數,其代碼為

private void Page_Load(object sender, System.EventArgs e)
{
  // 獲得參數
  string name = this.Request.QueryString ["name"] ;
  if( name == null )
  {
    return ;
  }
  // 獲得餅圖對象
  PieShape pie = this.Session[ name ] as PIEShape ;
  if( pIE == null )
  {
    return ;
  }
  using( Bitmap bmp = pIE.CreateBitmap())
  {
     this.Response.ContentType = "image/png";
     System.IO.MemoryStream ms = new System.IO.MemoryStream();
    bmp.Save( ms , System.Drawing.Imaging.ImageFormat.Png );
    ms.WriteTo( this.Response.OutputStream );
    ms.Close();
  }
}

該頁面試圖從session中加載頁面參數指定的名稱的餅圖文檔對象,並利用該 文檔對象的CreateBmp函數獲得一個位圖對象,然後輸出PNG格式的圖像數據。

這個圖 片服務頁面要正常工作,需要事先將餅圖文檔對象保存到Session中,然後使用正確的參數來 調用這個頁面。

主頁面 pIE_customers.ASPx中,已經將生成的文檔對象使用名稱 pIE_customers保存到Session中,同時它生成的Html代碼中使用的圖片地址就是 pIEimage.ASPx?name=pIE_custoemrs ,主頁面為了圖片服務頁面正常工作已經做好了充分的 准備。由於主頁面和圖片服務頁面密切配合工作,客戶端浏覽器中才能完整的顯示餅圖圖形 。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved