Getting Started With Microsoft Chart Control for .NET Framework 3.5

by Chris Bennett

Are you in need of charting capabilities in your ASP.NET Site, but you don't want to purchase a set of 3rd party controls? Check out the full-featured Microsoft Chart Control for the .NET Framework 3.5.


Some time ago, Microsoft released a full-featured Chart Control for the .NET Framework 3.5. The Chart Control provides a wide range of capabilities for both ASP.NET and WinForm applications. In this article, I will focus primarily on ASP.NET capabilities; however, many of these techniques will work in WinForm applications as well. To get started, we need to download the Chart Control installers from Microsoft.  Here are the 3 packages to download and install:

After downloading and installing the chart control we can start developing using the new control. First we will stat with a blank ASP.NET Application. Open up the default.aspx page in design mode. In the Toolbox, you should find a new Chart control under the Data tab as shown in the figure below:

Figure 1 - Chart Control in Toolbox

Double click on the Chart control to add it to the page or Drag and Drop it. After adding the control to the page, you should see an empty chart as shown below:

Figure2 - New Chart

As you can see on the right, the chart is ready to be bound to a data source; however, before we jump into data binding we need to cover some of the basic chart features. The area where the chart is displayed is called the chart area. As you would expect, the chart area can be styled with background, colors, etc. The important thing to note is that a single chart can have more than one chart area. Chart areas are essentially independent charts within the chart control. Within the chart control, chart areas display mode (2D/3D), placement and z-order can be controlled. Within each chart area is one or more data series or just simply series. Each series has a chart type (bar, pie, etc), styling, and a series of data points. Each data point has an X value and one or more Y values.

Data Binding

Next we can jump in and bind the chart to a database. For this example, I've created a simple SQL table called SalesData with 3 columns in it ID, Date and TotalSales. I will also create an Entity Data Model and add in the single table within the database. Next we will use bind the chart control using the entity data binding. Then we use smart tag on the chart control and choose a new data source. Select Entity from the possible data source types and click Ok. Choose the named connection created for the Entity Data Model just created and click Next. Next choose SalesData from the EntitySetName drop down. Then select only the fields needed for data binding, in this case we only need the Date and TotalSales fields. Click Finish to complete the data source wizard. At this point, if yo were to run the project you would receive a blank page. The reason the chart does not display is that while we have data bound it, we have not given the series field to bind to. To do this we need to first view the properties for the chart control. Specifically, we need to modify the Series property. Click on the elipse to access the Series Collection Editor. You should notice that a single series called "Series1" is created by default with a new chart control. In the right pane, scroll down to the data binding properties XValueMember and YValueMember. For our data we will use the Date and the XValueMember and TotalSales for the YValueMember as shown below:

Figure 3 - Series Collection Editor

If you run the project at this point you should receive data; however, it is not a very attractive chart. Lets take advantage of 3D with this chart. We can enable 3D for this chart by accessing the ChartAreas property on the chart control. Again a ChartArea1 is created by default. Locate the property called (Enable3D) in the right pane, change the value from false to true and press Ok. The preview should change to reflect the change to 3D. Next, we can change the chart type on the series from Column to Spline. If you go ahead and run the project you should have a slightly more interesting chart as show in the figure below:

Figure 4 - 3D Databound Chart

Titles, Axis Titles, Legend

Next we should add a Title to the chart. This is done by creating a title using the Titles property on the chart control. Similar to the series and chart area, a Title Colllection Editor is used to facility the process. Add a title by clicking on the Add button. Then locate the (Title) property in the right pane. Give your chart a title, change the styling if you so choose and click Ok. As you may have already guessed, you may add as many titles as needed for your chart. To create a Legend for the chart we use the property Legend on the chart by clicking on the elipse. Using the Legend Collection Editor we can add one or more Legends. Simply clicking the add button will create and place a legend on the right side of the chart. You can adjust the styling and position of the legend using this screen.

The Axis Titles are similar to the chart Titles; however, Axis Titles are specific to a Chart Area rather than the chart control. Under the Chart Area editor, select ChartArea1 and edit the Axis property to specify primary and secondary titles for the X and Y axis.

Adding data without Data Binding

Unlike many 3rd party chart controls, the Microsoft Chart Control is actually very easy to populate in code behind. The following code snippet shows just how easy it is to add data points to the Series1 used above. However, you will need to remove data binding from the chart to prevent conflicts.

                  Chart1.Series["Series1"].Points.AddXY(1, 15000);
Chart1.Series["Series1"].Points.AddXY(2, 16000);
Chart1.Series["Series1"].Points.AddXY(3, 13000);
Chart1.Series["Series1"].Points.AddXY(4, 18000);

The above snippet uses the AddXY method on the series object to add 4 data points to the series. There are several different versions of the AddXY method which allows for passing in objects for X (numbers, dates, string) and for handling multiple Y values.


Above, we went through the basics of adding the control to your project, performing the basic configuration and populating it with data. As you can see, the chart control covers many of the basics necessary for charting. However, this article has just scratched the surface of all of the functionlity included within the chart control. Some of the advanced features which we did not touch on is the ASP.NET AJAX integration, real-time data, drill downs, etc. Please look for a future article from me regarding these advanced features of the Microsoft Chart Control for the .NET Framework 3.5.

This article was originally published on Thursday Apr 22nd 2010
Mobile Site | Full Site