ASP.NET利用VML绘制统计图


命名空间:System.Drawing.VmlChart
文件下载:VML绘制统计图类文件
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]
-->
<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>
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 }
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 }