ZedGraph在Web中的使用
生活随笔
收集整理的這篇文章主要介紹了
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中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OCS 如何在数据库直接给用户增加联络人
- 下一篇: “网络暴力”是什么心理 网络暴力他人的心