WebPart生成折线图和柱状图

第一:建立一个项目,添加对WebChart.dll的引用。(如果没有请到网上搜索下载)
第二:把WebChart添加到工具箱里,把WebChart添加到页面,同时在页面上添加两个Button。页面代码如下:
None.gif body >
None.gif    
< form id = " form1 "  runat = " server " >
None.gif    
< div >
None.gif        
< asp:Button ID = " Button1 "  runat = " server "  OnClick = " Button1_Click "  Text = " Button "   />
None.gif        
< asp:Button ID = " Button2 "  runat = " server "  OnClick = " Button2_Click "  Text = " Button "   />
None.gif        
< Web:ChartControl ID = " ChartControl1 "  runat = " server "  BorderStyle = " Outset "  BorderWidth = " 5px "  Height = " 328px "  Width = " 700px "  YCustomEnd = " 500 "  YCustomStart = " 100 " >
None.gif            
< YAxisFont StringFormat = " Far,Near,Character,LineLimit "  Text = " errer "   />
None.gif            
< XTitle StringFormat = " Center,Near,Character,LineLimit "  Text = " erererer "   />
None.gif            
< ChartTitle StringFormat = " Center,Near,Character,LineLimit "   />
None.gif            
< XAxisFont StringFormat = " Center,Near,Character,LineLimit "   />
None.gif            
< Background Color = " LightSteelBlue "   />    
None.gif            
< YTitle StringFormat = " Center,Near,Character,LineLimit "   />
None.gif        
</ Web:ChartControl ></ div >
None.gif    
</ form >
None.gif
</ body >

第三:添加WebChart的命名空间:using WebChart;;
第四:在后台添加如下代码:
None.gif   protected   void  Button1_Click( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        doIt();
InBlock.gif
ExpandedBlockEnd.gif    }

None.gif    
// 定义一个颜色数组,供循环时为不同的记录填充不同的颜色
None.gif
     private   string [] myColor  =   new   string []
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
"Tomato",//西红柿
InBlock.gif
    "Black",
InBlock.gif    
"Gold",
InBlock.gif    
"Blue",
InBlock.gif    
"Green",
InBlock.gif    
"Orange",
InBlock.gif    
"Pink",//粉红
InBlock.gif
    "Violet",//紫罗兰
InBlock.gif
    "Orchid",//淡紫色
InBlock.gif
    "Lime",//亮绿
InBlock.gif
    "Tan",//茶色
InBlock.gif
    "Red",
InBlock.gif    
"Navy"//橘红
ExpandedBlockEnd.gif
}
;
None.gif    
// 用静态方式示例了画出一条两个点的最简单折线.实际项目据此做循环而以.
None.gif
     private   void  doIt()
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
//创建折线对象
InBlock.gif
        LineChart myChart = new LineChart();
InBlock.gif        
//为折线填充颜色
InBlock.gif
        myChart.Line.Color = System.Drawing.Color.FromName(myColor[0]);
InBlock.gif        myChart.Fill.Color 
= System.Drawing.Color.FromName(myColor[0]);
InBlock.gif        myChart.LineMarker 
= new DiamondLineMarker(8, System.Drawing.Color.FromName(myColor[0]), System.Drawing.Color.FromName(myColor[0]));
InBlock.gif        
//图例说明
InBlock.gif
        myChart.Legend = "折线一";
InBlock.gif        
//添加第一个点,参数一为x座标上的名称,参数二为y座标上的值
InBlock.gif
        myChart.Data.Add(new ChartPoint(""float.Parse("100")));
InBlock.gif        
//添加第二个点
InBlock.gif
        myChart.Data.Add(new ChartPoint(""float.Parse("150")));
InBlock.gif        myChart.Data.Add(
new ChartPoint(""float.Parse("180")));
InBlock.gif        myChart.Data.Add(
new ChartPoint(""float.Parse("300")));
InBlock.gif        
//chart为控件ID
InBlock.gif
        this.ChartControl1.Charts.Add(myChart);
InBlock.gif        
this.ChartControl1.RedrawChart();
InBlock.gif
InBlock.gif        LineChart myChart1 
= new LineChart();
InBlock.gif        
//为折线填充颜色
InBlock.gif
        myChart1.Line.Color = System.Drawing.Color.FromName(myColor[1]);
InBlock.gif        myChart1.Fill.Color 
= System.Drawing.Color.FromName(myColor[1]);
InBlock.gif        myChart1.LineMarker 
= new DiamondLineMarker(8, System.Drawing.Color.FromName(myColor[1]), System.Drawing.Color.FromName(myColor[1]));
InBlock.gif        
//图例说明
InBlock.gif
        myChart1.Legend = "折线二";
InBlock.gif        
//添加第一个点,参数一为x座标上的名称,参数二为y座标上的值
InBlock.gif
        myChart1.Data.Add(new ChartPoint(""float.Parse("70")));
InBlock.gif        
//添加第二个点
InBlock.gif
        myChart1.Data.Add(new ChartPoint(""float.Parse("150")));
InBlock.gif        myChart1.Data.Add(
new ChartPoint(""float.Parse("160")));
InBlock.gif        myChart1.Data.Add(
new ChartPoint(""float.Parse("270")));
InBlock.gif        
//chart为控件ID
InBlock.gif
        this.ChartControl1.Charts.Add(myChart1);
InBlock.gif        
this.ChartControl1.RedrawChart();
InBlock.gif     
InBlock.gif
InBlock.gif
InBlock.gif        LineChart myChart2 
= new LineChart();
InBlock.gif        
//为折线填充颜色
InBlock.gif
        myChart2.Line.Color = System.Drawing.Color.FromName(myColor[1]);
InBlock.gif        myChart2.Fill.Color 
= System.Drawing.Color.FromName(myColor[1]);
InBlock.gif        myChart2.LineMarker 
= new DiamondLineMarker(8, System.Drawing.Color.FromName(myColor[4]), System.Drawing.Color.FromName(myColor[4]));
InBlock.gif        
//图例说明
InBlock.gif
        myChart2.Legend = "折线san";
InBlock.gif        
//添加第一个点,参数一为x座标上的名称,参数二为y座标上的值
InBlock.gif
        myChart2.Data.Add(new ChartPoint(""float.Parse("200")));
InBlock.gif        
//添加第二个点
InBlock.gif
        myChart2.Data.Add(new ChartPoint(""float.Parse("210")));
InBlock.gif        myChart2.Data.Add(
new ChartPoint(""float.Parse("270")));
InBlock.gif        myChart2.Data.Add(
new ChartPoint(""float.Parse("40")));
InBlock.gif        
//chart为控件ID
InBlock.gif
        this.ChartControl1.Charts.Add(myChart2);
InBlock.gif        
this.ChartControl1.RedrawChart();
ExpandedBlockEnd.gif    }

None.gif
None.gif    
protected   void  Button2_Click( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        bindchart();
InBlock.gif
ExpandedBlockEnd.gif    }

None.gif    
None.gif
None.gif    
// 调用该方法生成柱状图
None.gif
     private   void  bindchart()
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
//获取一个DataTable,具体函数略dot.gif
InBlock.gif
        DataTable dt = new DataTable();
InBlock.gif        
//if (dt != null)
InBlock.gif        
//{
InBlock.gif
        int count = 5;
InBlock.gif        
int count1 = 120;
InBlock.gif        
if (count > 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
//遍历DataTable为每条记录生成一个柱状
InBlock.gif
                for (int i = 0; i < count; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
//创建对象
InBlock.gif
                    ColumnChart mychart = new ColumnChart();
InBlock.gif                    
//设置柱子宽度
InBlock.gif
                    mychart.MaxColumnWidth = 48;
InBlock.gif                    
//颜色
InBlock.gif
                    mychart.Fill.Color = System.Drawing.Color.FromName(this.myColor[i]);
InBlock.gif                    
//在柱子上显示数量
InBlock.gif
                    mychart.DataLabels.Visible = true;
InBlock.gif                    
//数量的字体
InBlock.gif
                    mychart.DataLabels.Font = new System.Drawing.Font("Verdana"14);
InBlock.gif                    
//添加
InBlock.gif
                    mychart.Data.Add(new ChartPoint(i.ToString(), float.Parse(count1.ToString())));
InBlock.gif                    
//备注
InBlock.gif
                    mychart.Legend = "fdfdf" + count;
InBlock.gif                    
this.ChartControl1.Charts.Add(mychart);
InBlock.gif                    count1 
+= 80;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
//辅助设置
InBlock.gif                
//背景色
InBlock.gif
                ChartControl1.Background.Color = System.Drawing.Color.FromArgb(165016);
InBlock.gif                ChartControl1.YAxisFont.ForeColor 
= System.Drawing.Color.FromArgb(165016);
InBlock.gif                ChartControl1.XAxisFont.ForeColor 
= System.Drawing.Color.FromArgb(165016);
InBlock.gif                
//内部线条
InBlock.gif
                ChartControl1.Border.Color = System.Drawing.Color.FromArgb(200200200);
InBlock.gif                
//边框样式
InBlock.gif
                ChartControl1.BorderStyle = BorderStyle.None;
InBlock.gif                
//y最大值
InBlock.gif
                double max = double.Parse((count+300).ToString());
InBlock.gif                
//递增值
InBlock.gif
                int intv = 2;
InBlock.gif
InBlock.gif                
//数量小于16的情况
InBlock.gif
                if (max < 16)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    max 
= 16;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
//大于16的情况
InBlock.gif
                else
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    intv 
= int.Parse(Math.Ceiling(max / 8).ToString());
InBlock.gif                    max 
+= intv;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
//设置Y轴终点值
InBlock.gif
                ChartControl1.YCustomEnd = int.Parse(max.ToString());
InBlock.gif                
//y递增值
InBlock.gif
                ChartControl1.YValuesInterval = intv;
InBlock.gif                
//生成
InBlock.gif
                this.ChartControl1.RedrawChart();
ExpandedSubBlockEnd.gif            }

InBlock.gif        
//}
ExpandedBlockEnd.gif
    }

运行就OK了。

转载于:https://www.cnblogs.com/gjahead/archive/2007/03/27/690509.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值