在ASP.NET中动态创建柱状图和饼图(1)
点击次数:21 次 发布日期:2008-11-26 14:35:54 作者:源代码网
|
源代码网推荐 源代码网推荐 查看例子 源代码网推荐 源代码网推荐 第一步:创建一个新的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)。 源代码网推荐 源代码网供稿. |
