当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  在ASP.NET中动态创建柱状图和饼图(1)

 在ASP.NET中动态创建柱状图和饼图(1)

点击次数:21 次 发布日期:2008-11-26 14:35:54 作者:源代码网
源代码网推荐      在应用程序开发中,我们会经常遇到把从数据源动态取回的数据用统计图表现出来,在Microsoft .net Framework出现之前,我们采取的方法主要是编写组件来完成这一任务。现在,利用Microsoft .NET Framework提供的丰富的GDI+类和对象可以很轻松地实现这一功能。在本文中,我们就来看看在ASP.NET中如何动态创建常用的柱状图和饼图。数据源有许多种,在本文里我们就以数组来进行示例,但本例的方法很容易转换成数据库类型的数据源来进行。
源代码网推荐  
源代码网推荐  查看例子
源代码网推荐  
源代码网推荐  第一步:创建一个新的ASP.NET项目。
源代码网推荐  
源代码网推荐  打开Microsoft Visual Studio .NET,点击“文件(File)”-“新建(New)”-“项目(Project)”,打开“新建项目(New Project)”对话框,在“项目类型(Project Types)”里选择“Visual Basic 项目(Projects)”,在“模板(Templates)”里选择“ASP.NET应用程序(Web Application)”,在应用程序地址里输入:http://localhost/aspCharts,点击“确定(OK)”按钮,Microsoft Visual Studio .NET将会自动在wwwroot目录下创建一个名为aspCharts的Web工程。
源代码网推荐  
源代码网推荐  第二步:为默认起始页编写代码(Aspxhttp://image.21tx.com/image/20030502/10107.jpg)。
源代码网推荐  
源代码网推荐  我们要在这个页面里显示动态创建的图形,打开Aspxhttp://image.21tx.com/image/20030502/10107.jpg的标签页的“HTML”视图,插入下面的代码:
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   <html>
源代码网推荐   <body>
源代码网推荐   <form id="Form1" method="post" runat="server">
源代码网推荐   <table width="517" border="0" height="255">
源代码网推荐   <tr>
源代码网推荐   <td align="middle"><img src="http://image.21tx.com/image/20030502/10107.jpg"></td>
源代码网推荐   </tr>
源代码网推荐   <tr>
源代码网推荐   <td height="20" align="middle">ASP.NET 中动态创建图形范例</td>
源代码网推荐   </tr>
源代码网推荐   </table>
源代码网推荐   </form>
源代码网推荐   </body>
源代码网推荐  </html>
源代码网推荐  
源代码网推荐  第三步:添加名为http://image.21tx.com/image/20030502/10107.jpg的Web窗体页。
源代码网推荐  
源代码网推荐  打开“解决方案资源管理器(Solution Explorer)”,在“aspCharts项目”上点击右键,选择“添加(Add)”-“添加新项(Add New Item)”,弹出“添加新项(Add New Item)”对话框,在右边的“模板”里选择“Web 窗体”,在底下的名字输入框了输入“http://image.21tx.com/image/20030502/10107.jpg”,点击“打开”按钮。
源代码网推荐  
源代码网推荐  第四步:为“http://image.21tx.com/image/20030502/10107.jpg”Web 窗体页添加代码。
源代码网推荐  
源代码网推荐  在“http://image.21tx.com/image/20030502/10107.jpg”窗体上点击右键,选择“查看代码(View Code)”,在代码的第一行添加下面二行:
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  Imports System.Drawing
源代码网推荐  Imports System.Drawing.Imaging
源代码网推荐  Public Class Chart
源代码网推荐   Inherits System.Web.UI.Page
源代码网推荐  
源代码网推荐  #Region " Web 窗体设计器生成的代码 "
源代码网推荐  
源代码网推荐   "该调用是 Web 窗体设计器所必需的。
源代码网推荐   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
源代码网推荐  
源代码网推荐   End Sub
源代码网推荐  
源代码网推荐   Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
源代码网推荐   "CODEGEN: 此方法调用是 Web 窗体设计器所必需的
源代码网推荐   "不要使用代码编辑器修改它。
源代码网推荐   InitializeComponent()
源代码网推荐   End Sub
源代码网推荐  
源代码网推荐  #End Region
源代码网推荐  
源代码网推荐   "创建页面事件
源代码网推荐   Private Sub Page_Load(ByVal sender As System.Object, _
源代码网推荐   ByVal e As System.EventArgs) Handles MyBase.Load
源代码网推荐  
源代码网推荐   "声明整型变量i,
源代码网推荐   Dim i As Integer
源代码网推荐  
源代码网推荐   "创建一个位图对象,用来放置柱形图,我们可以把它看作是一块画布。
源代码网推荐   "这里宽、高分别是400和200,当然,你也可以根据需要把它们做为参数来进行传递。
源代码网推荐   Dim objBitMap As New Bitmap(400, 200)
源代码网推荐  
源代码网推荐   "声明一个图形对象,在上面创建的位图上画图。
源代码网推荐   Dim objGraphics As Graphics
源代码网推荐  
源代码网推荐   "从指定的objBitMap对象创建新图形对象objGraphics。
源代码网推荐   objGraphics = Graphics.FromImage(objBitMap)
源代码网推荐  
源代码网推荐   "清除整个绘图面并以指定白色为背景色进行填充。
源代码网推荐   objGraphics.Clear(Color.White)
源代码网推荐  
源代码网推荐   "创建一个数据源,这里我们为了方便其间,采用数组做为柱形图和饼图的数据源。
源代码网推荐   Dim arrValues(5) As Integer
源代码网推荐   arrValues(0) = 100
源代码网推荐   arrValues(1) = 135
源代码网推荐   arrValues(2) = 115
源代码网推荐   arrValues(3) = 125
源代码网推荐   arrValues(4) = 75
源代码网推荐   arrValues(5) = 120
源代码网推荐  
源代码网推荐   "定义数组对象,用来描述图例。
源代码网推荐   Dim arrValueNames(5) As String
源代码网推荐   arrValueNames(0) = "一月"
源代码网推荐   arrValueNames(1) = "二月"
源代码网推荐   arrValueNames(2) = "三月"
源代码网推荐   arrValueNames(3) = "四月"
源代码网推荐   arrValueNames(4) = "五月"
源代码网推荐   arrValueNames(5) = "六月"
源代码网推荐  
源代码网推荐   "在画布(objBitMap对象)的坐标5,5处,用指定的Brush(画笔)对象和Font(字体)对象绘制统计图标题。
源代码网推荐   objGraphics.DrawString(" X 公司上半年销售情况", _
源代码网推荐   New Font("宋体", 16), Brushes.Black, New PointF(5, 5))
源代码网推荐  
源代码网推荐   "创建图例文字。
源代码网推荐   Dim symbolLeg As PointF = New PointF(335, 20)
源代码网推荐   Dim descLeg As PointF = New PointF(360, 16)
源代码网推荐  
源代码网推荐   "画出图例。利用objGraphics图形对象的三个方法画出图例:
源代码网推荐   "FillRectangle()方法画出填充矩形,DrawRectangle()方法画出矩形的边框,
源代码网推荐   "DrawString()方法画出说明文字。这三个图形对象的方法在 .NET 框架类库类库中均已重载,
源代码网推荐   "可以很方便根据不同的参数来画出图形。
源代码网推荐   For i = 0 To arrValueNames.Length - 1
源代码网推荐  
源代码网推荐   "画出填充矩形。
源代码网推荐   objGraphics.FillRectangle(New SolidBrush(GetColor(i)), symbolLeg.X, symbolLeg.Y, 20, 10)
源代码网推荐  
源代码网推荐   "画出矩形边框。
源代码网推荐   objGraphics.DrawRectangle(Pens.Black, symbolLeg.X, symbolLeg.Y, 20, 10)
源代码网推荐  
源代码网推荐   "画出图例说明文字。
源代码网推荐   objGraphics.DrawString(arrValueNames(i).ToString, New Font("宋体", 10), Brushes.Black, descLeg)
源代码网推荐  
源代码网推荐   "移动坐标位置,只移动Y方向的值即可。
源代码网推荐   symbolLeg.Y += 15
源代码网推荐   descLeg.Y += 15
源代码网推荐  
源代码网推荐   Next i
源代码网推荐  
源代码网推荐   "遍历数据源的每一项数据,并根据数据的大小画出矩形图(即柱形图的柱)。
源代码网推荐  
源代码网推荐   For i = 0 To arrValues.Length - 1
源代码网推荐  
源代码网推荐   "画出填充矩形。
源代码网推荐   objGraphics.FillRectangle(New SolidBrush(GetColor(i)), _
源代码网推荐   (i * 35) + 15, 200 - arrValues(i), 20, arrValues(i) + 5)
源代码网推荐   "画出矩形边框线。
源代码网推荐   objGraphics.DrawRectangle(Pens.Black, (i * 35) + 15, 200 - arrValues(i), 20, arrValues(i) + 5)
源代码网推荐  
源代码网推荐   Next
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华