日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ZedGraph在Web中的使用

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZedGraph在Web中的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?上一篇SQL實現分組統計查詢(按月、小時分組)中介紹了按月和小時為單位怎樣實現分組查詢,在本文中會實現將上文查詢的結果以圖表的形式顯示在頁面上。在頁面上顯示圖標有很多種解決方案,office的owc組建、自己寫代碼、或者是第三方的控件。本文中將使用ZedGraph控件來實現。選擇ZedGraph有兩個原因:

  • 該控件是開源的,在必要的時候可以根據自己的需要來修改;
  • 該控件所顯示的圖片是繪出來的,而不是生成的圖片。

下載地址:http://sourceforge.net/project/showfiles.php?group_id=114675

1 將控件引用到項目中,本示例使用的是5.1.5版。

在工具欄下方的空白處點擊右鍵—>添加選項卡,命名為ZedGraph

?

在ZedGraph選項卡點右鍵—>選擇項…,在彈出窗口中選擇下載下來的ZedGraph.Web.dll文件。

?

?

2 在項目中新建一aspx頁面,命名為Year.aspx,將剛添加的ZedGraph控件拖到頁面中,并在頁面中添加一個文本框和一個按鈕,文本框用來選擇年份。

?

3 切換到代碼視圖,添加如下代碼:

namespace ZedGraphDemo {public partial class Year : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){this.ZgwYear.RenderGraph +=new ZedGraphWebControlEventHandler(ZgwYear_RenderGraph);}void ZgwYear_RenderGraph(ZedGraphWeb webObject,System.Drawing.Graphics g, MasterPane pane){GraphPane myPane = pane[0];// 標題myPane.Title.Text = "每年分析(月為單位)";myPane.XAxis.Title.Text = "時間";myPane.YAxis.Title.Text = "訪問量";// 坐標對集PointPairList list = new PointPairList();//PointPairList list1 = new PointPairList();//PointPairList list2 = new PointPairList();//從數據庫中獲取數據集DataTable dtYear = GetData();if (dtYear == null)return;for (int i = 0; i < dtYear.Rows.Count; i++){list.Add(Convert.ToDouble(i), Convert.ToDouble(dtYear.Rows[i]["Count"]));//如果有多種類型,可以添加多個//list1.Add(Convert.ToDouble(i), Convert.ToDouble(dtYear.Rows[i]["Count1"]));//list2.Add(Convert.ToDouble(i), Convert.ToDouble(dtYear.Rows[i]["Count2"]));}BarItem myBar = myPane.AddBar("頁面訪問", list, Color.Blue);//BarItem myBar1 = myPane.AddBar("", list1, Color.Red);//BarItem myBar2 = myPane.AddBar("", list2, Color.Yellow);myBar.Bar.Fill = new Fill(Color.Blue, Color.White, Color.Blue);//myBar1.Bar.Fill = new Fill(Color.Red, Color.White, Color.Red);//myBar2.Bar.Fill = new Fill(Color.Yellow, Color.White, Color.Yellow);myPane.XAxis.MajorTic.IsBetweenLabels = true;// X軸Labelstring[] labels = new string[] { "1月", "2月", "3月", "4月", "5月", "6月","7月", "8月", "9月", "10月", "11月", "12月" };//設置x軸刻度myPane.XAxis.Scale.TextLabels = labels;myPane.XAxis.Type = AxisType.Text;// 顏色填充myPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f);myPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, 45.0f);pane.AxisChange(g);myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;BarItem.CreateBarLabels(myPane, false, "f0"); //在柱狀圖上方顯示統計數}protected void btnQuerys_Click(object sender, EventArgs e){GetData();}private DataTable GetData(){SqlHelper.ConnectionString =ConfigurationManager.AppSettings["ConnectionString"].ToString();SqlParameter[] parameters = new SqlParameter[1];parameters[0] = new SqlParameter("@Year", SqlDbType.Int, 4);parameters[0].Value = this.txtYear.Value.Trim().Length == 0 ? DateTime.Now.Year :Convert.ToInt32(txtYear.Value.Trim());DataSet ds = SqlHelper.ExecuteDataset("Counter_CounterYear", parameters);if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0){return ds.Tables[0];}else{return null;}}} }

4 在項目的根目錄下創建一個名為ZedGraphImages的文件夾,只是作為ZedGraph繪圖時的一個臨時目錄,并不會在該文件夾中生成圖片,如果沒有該文件夾會報異常。

轉載于:https://blog.51cto.com/oec2003/1043840

總結

以上是生活随笔為你收集整理的ZedGraph在Web中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。