Microsoft Chart Controls 小结

          今天要总结的是Microsoft Chart Controls。

           微软在收购了 Dundas 这家优秀的图表组件公司后,日前释出了功能相当强大,而且完全免费的图表组件,名为「Microsoft Chart Controls for Microsoft .NET Framework 3.5」。

过去要在 ASP.NET 或 Windows Form 中绘制图表,可能要花钱买其它公司的组件,或用微软的绘图函式库自己撰码处理。但现在透过组件,以及微软提供免费下载的上百个现成范例 (包装成单一个 project)、免费的技术文件,可让您的项目及报表,轻松套用各种功能强大的 2D、3D、实时变化的动态图表;且透过 AJAX,可让图表及里面的数据,每秒钟都持续更新使用者透过浏览器,可和图表做各种互动设定。

          下面提供一个官网地址,大家可在这下载(而且里面也有丰富的示例,大家看到后会有一种很爽的感觉):

           http://archive.msdn.microsoft.com/mschart

          由于在近期的项目中用到了将数据显示为图表,所以自己写了一个将datasource绑定到图表的方法。

          前台的报表代码如下:


                        
                            
                            
                        
                        
                        
                            
                                
                                
                                    
                                    
                                
                                
                                    
                                    
                                    
                                
                            
                        
                    


     绑定dataTable到图表的方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;
using System.Data;
using BLL;

namespace AdminMis
{
    public class BindChart
    {
        /// 
        /// 用于绑定图表
        /// 
        /// 图表
        /// 图表类型
        /// 种类的datatable
        /// 种类的字符串
        /// XY坐标的datatable
        /// X坐标的字符串
        /// Y坐标的字符串
        /// 
        public void BindDataTableToChart(ref Chart Chart,SeriesChartType type,System.Data.DataTable dtVariety,string strTag,string strVariety,System.Data.DataTable dtXY,string strX,string strY,ref CheckBoxList CheckBoxList)
        { 
            //图表

            //临时变量,用来绑定checkboxlist
            

            foreach (DataRow row in dtVariety.Rows)
            {
                // for each Row, add a new series
                string seriesName = row[strVariety].ToString() + strTag;
                Chart.Series.Add(seriesName);
                Chart.Series[seriesName].ChartType = type;
                Chart.Series[seriesName].BorderWidth = 2;
                Chart.Series[seriesName].ShadowOffset = 2;
                                
            }
            foreach (DataRow row in dtXY.Rows)
            {
                string seriesName = row[strVariety].ToString() + strTag;

                string date = row[strX].ToString();
                int YVal = (int)row[strY];

                Chart.Series[seriesName].Points.AddXY(date, YVal);
            }

            for (int i = 0; i < dtVariety.Rows.Count; i++)
            {
                Chart.Series[i].Enabled = CheckBoxList.Items[i].Selected;
            }
        }


        public void BindXYToChart(ref Chart Chart, SeriesChartType type, System.Data.DataTable dtXY, string strX, string strY)
        {
            Chart.Series.Add("default");
            Chart.Series["default"].ChartType = type;

            foreach (DataRow row in dtXY.Rows)
            {
                string date = row[strX].ToString();
                int YVal = (int)row[strY];

                Chart.Series["default"].Points.AddXY(date,YVal);
            }
        }

    }
}


             第一个方法是用来绑定三维的方法,第二个方法是用来绑定二维的方法。
         

你可能感兴趣的:(职场小菜成长记)