车神

专注MS.NET技术
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET利用VML绘制统计图

Posted on 2011-04-20 20:17  车神  阅读(413)  评论(0)    收藏  举报
ASP.NET利用VML绘制统计图
命名空间:System.Drawing.VmlChart
PillarChart类:设置及生成柱状图的VML字符串
方法:GetPillarStr(Datatable),用于获取柱状图VML字符串。
属性:
背景图宽度(默认:500px):Width
背景图高度(默认:200px):Height
距顶端的垂直距离(默认:0px):Top
距左边的垂直距离(默认:0px):Left
Y轴分为几段(默认:10):Section
柱状图最大值(默认为数据最大值的130%):MaxNum
颜色列表(默认已有:12种颜色):PillarColor
背景颜色(默认:#9cf):BgColor
刻度线颜色(默认:#69f):SecColor
柱子宽度(默认:30):PilWidth
 
 
PieChart类:设置及生成饼状图的VML字符串
方法:GetPieStr(Datatable),用于获取饼状图VML字符串。
属性:

饼状图标题(默认:PieChart 动态绘制饼状图):Caption

饼状图标题字体颜色(默认:black):CapColor
饼状图宽度(默认:500px):Width
饼状图高度(默认:300px):Height

距顶端的垂直距离(默认:0px):Top

距左边的垂直距离(默认:0px):Left
颜色列表(默认已有:12种颜色):PieColor
饼状图阴影(默认:true):Shadow
饼状图背景颜色(默认:gray):PieBgColor
图例背景颜色(默认:gray):LegBgColor
图例标题(默认:总数:):LegCaption
图例标题字体颜色(默认:white):LegCapColor
图例标题背景颜色(默认:#777777):LegCapBgColor
图例字体颜色(默认:black):LegContentColor
百分比字体颜色(默认:white):PerColor
百分比字体厚度(默认:5):PerIMT
 
使用方法:
 
前期工作: 
在调用该类的aspx页面的<html>中添加下面内容:
<html  xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>中添加如下内容:
 <!--[if !mso]>
    <STYLE>
    v\:*    { behavior: url(#default#VML) }
    o\:*    { behavior: url(#default#VML) }
    .shape  { behavior: url(#default#VML) }
    </STYLE>
    <![endif]
    -->
</head>
在调用该类的aspx页面中加入一个<%=pillvm%>用显示柱状图
在调用该类的aspx页面中加入一个<%=pievm%>用显示饼状图
 
开始生成统计图:
using System.Drawing.VmlChart;        //引用命名空间
 
在调用该类的cs文件中声明两个变量
public pillvm;
public pievm;
 
DataTable dt = new DataTable();            //被统计的数据,表字段结构:Columns[0] 项目Name;Columns[1] 项目Count
 
PillarChart pill = new PillarChart();        //实例化一个柱状图
pillvm = pill.GetPillarStr(dt);                    //生成柱状图的VML字符串
 
PieChart pie = new PieChart();            //实例化一个饼状图
pievm = pie.GetPieChart(dt);                    //生成饼状图的VML字符串 
 
示例代码:
Default.aspx及Default.aspx.cs
代码
 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
 2 
 3 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 4 <head runat="server">
 5     <title>无标题页</title>
 6     
 7     <!--[if !mso]>
 8         <STYLE>
 9             v\:*    { behavior: url(#default#VML) }
10             o\:*    { behavior: url(#default#VML) }
11             .shape  { behavior: url(#default#VML) }
12         </STYLE>
13     <![endif]
14     -->
15 
16 </head>
17 <body>
18     <form id="form1" runat="server">
19     <div>
20         <%=pillvm%>
21         <%=pievm%>
22     </div>
23     </form>
24 </body>
25 </html>

 

代码
 1 using System;
 2 using System.Data;
 3 using System.Collections;
 4 using System.Web.UI;
 5 
 6 using System.Drawing.VmlChart;
 7 
 8 public partial class Default : System.Web.UI.Page
 9 {
10     public string pillvm;  //声明全局变量。
11     public string pievm;  //声明全局变量。
12 
13     protected void Page_Load(object sender, EventArgs e)
14     {
15         DataTable dt = 获取数据的方法;
16 
17         PillarChart pill = new PillarChart();  //实例化柱状图类。
18         pillvm = pill.GetPillarStr(dt);      //使用实例的GetPillarStr(dt)方法获得VML字符串。
19 
20         PieChart pie = new PieChart();      //实例化饼状图类。
21         pie.Top = 200;                //更改实例的Top属性。
22         pievm = pie.GetPieStr(dt);        //使用实例的GetPieStr(dt)方法获得VML字符串。
23     }
24 }