Microsoft Chart Controls For ASP.NET

3.73 (15 votes)

Many times, I have seen questions about where to obtain Charting controls for ASP.NET web applications, and until recently, the answer has always been to have a look at many of the third party offers that are available from the leading control development companies. That is until Microsoft released their Chart Controls for both Windows Forms and ASP.NET to work with .Net 3.5 SP1.

To begin with, you need to download MSChart.exe, and you will also find life a lot easier if you install the Visual Studio Add on that adds the charting control to the toolbox and offers Intellisense support for the components too, and also download the .chm documentation. There are also a load of samples showing the charts being used against a variety of data ssources, such as xml, csv, Excel and a typed dataset. These can be downloaded from http://code.msdn.microsoft.com/mschart.

Once you have installed the .exe and the VS Add on, you will see a chart icon in the Data section of the Toolbox in Visual Studio, but if you are using Visual Web Developer Express, you will need to add it manually. This can be done by right-clicking on the Data section header, and choosing Add Items.

From there, select the System.Web.UI.DataVisualization.Charting flavour of Chart, and click OK.

That's it. The Chart icon should appear in your toolbox, ready to be dragged onto the Forms Designer. Once you do, you are presented with a default vertical bar chart.

To change the chart type, you need to find the Series option in the Properties panel for the Chart. If you click next to (Collection) a button with ellipses will show, and clicking on this will reveal the Series Collection Editor. In the Chart section, you will find Chart Type, and a drop down offering you a selection to choose from. I chose Pie.

There are a huge number of options available to format the chart. These are found in the Chart section of the Properties, and are generally members of collections. ChartArea options include the ability to set a 3D appearance, inclination etc of the actual chart; Legends and Title allow you finer control over these areas, and Series holds one of the most important options (in the Data Source section): XValueMember and YValueMembers. These must be set to bind data to the chart, and to prevent a blank image being rendered.

I drag a SqlDataSource onto the designer, and configure it to connect to an old copy of this site's database, and apply the following SQL to it:

  

SELECT Categories.Category, COUNT(ArticleCategories.CategoryID) AS TotalInCategory

FROM ArticleCategories

INNER JOIN Categories ON ArticleCategories.CategoryID = Categories.CategoryID

GROUP BY Categories.Category

  

This produces a resultset that shows how many articles there were in each category on my site during stage 2 of its evolution. Having done that, click the smart tag on the chart, and choose the datasource. At this point you can normally run the page if this was a GridView or similar databound control, but if you do, the result would be a totally blank page. Now you need to go back to the Properties panel, and find the Series section and configure the XValueMember and the YValueMembers as mentioned previously. Fortunately, the two values that are being returned are available as dropdown options.

I select Category for the X value, and TotalInCategory for the Y values, and run the page:

The result is far from satisfactory, so I fiddle with some more of the formatting properties and the size and get something much nicer:

The charts are rendered as images. The default is to use an HttpHandler to stream the image to the browser as a png file - all managed by the Chart library. However, there are options to change the image type to jpg, bmp or emf files and to save them to the filesystem and use a straightforward <img> tag to show them. The documentation is quite comprehensive in its coverage of the library classes etc, but is very disappointing in its lack of walkthroughs or easier explanations or notes as to what each property does, and what effect changing it might have on the resulting graph. However, there is already a forum dedicated to the chart control library at MSDN forums, and no doubt most beginner questions will be answered there as it grows.

 

Date Posted:
Last Updated:
Posted by:
Total Views to date: 56945

12 Comments

- Dhruv

Hi Mike! Your chart blog is not going in depth for how to utilize the chart controls for various charttypes. I intend to use them for various type,i.e. pie charts, bubble charts,bar charts etc. So, if u could guide me to that,it will really be nice.

- Mike

@Dhruv

The article was only intended to act as an introduction to the controls when they were first released last year. If you want to know more about how to use them, I suggest you try the documentation that comes with them.

- Nilesh

this is very good document and site is asom...
You r doing greate job dear thank a lot.....

- Nish

how to use bubble chart in MS Chart

- Mike

@Nish

The documentation that comes with the chart controls has details

- ferdy

I've Visual Web Developer 2008. I tried to installing mschart and relative add-on for Visual Studio, but it was in error. If I remember the error message was: Formatetc error. Or similar to.
Help me. Thank's.

- Manivel

Hi i was not able to add the chart control by the above method in visual studio 2005

- Mike

@Manivel,

VS 2005 doesn't support ASP.NET 3.5 or 4.0, so you should look at downloading the free Visual Studio 2010 Express and use that instead.

http://www.microsoft.com/express/Web/

- Rick

Hello Mike,

I'm trying to add the control to VS 2010 for work on .net framework 3.5 projects. When I add the control it shows up greyed out on the tool box. Any ideas?

Thanks,
Rick

- Mike

@Rick,

Sorry - no idea at all. You should post a question to a forum.

- @mayur

Hi Mike!

how to use Pie && Bar chart in VS 2010 ????

- Mike

@@mayur,

I dunno.

Recent Comments

Jerrie Pelser 23/07/2016 05:08
In response to Loading ASP.NET Core MVC Views From A Database Or Other Location
Very cool concept Mike!...

Satyabrata 20/07/2016 20:54
In response to ASP.NET Web Pages vNext or Razor Pages
Thanks for sharing ...

infocyde 18/07/2016 00:40
In response to ASP.NET Web Pages vNext or Razor Pages
Curious to see if a new release of webmatrix will happen or if that is dead in the water....

Don 15/07/2016 16:58
In response to ASP.NET Web Pages vNext or Razor Pages
Thanks Mike! Wonder if the MVC Lite is the Controllerless Views approach referred to on the Web Dev...

Jose Negro 30/06/2016 16:02
In response to Entity Framework Code First and Stored Procedures
Thank you very much for so clear examples....

A. Truong 29/06/2016 15:25
In response to The Best Way To Import Data From Excel To SQL Server via ASP.NET
Awesome work! Lifesaver....

satyabrata 19/06/2016 18:53
In response to Entity Framework Code First and Stored Procedures
Nice article. Thanks. The menu on this website not working in mobile....

satyabrata 16/05/2016 06:28
In response to Implementing SQL Server Full-Text Search In An ASP.NET MVC Web Application With Entity Framework
This is great. Thanks for sharing....

sharey 06/05/2016 13:15
In response to The Best Way To Import Data From Excel To SQL Server via ASP.NET
nice work gentleman.Really helpfull....

Satyabrata Mohapatra 20/04/2016 04:36
In response to The Best Way To Import Data From Excel To SQL Server via ASP.NET
Another beauty !!!! Thanks for sharing....