The Chart control is an optional download for .NET 3.5. It features a complete chart including bars, stocks, pie, 3D and many more chart types.
You can get the download links to the control from Scott Gu’s blog here: http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx
I was playing around with it yesterday and made a little chart to display yearly sales by month.
First I started by creating the control on my aspx page
<asp:Chart ID="SalesChart" Width="400px" runat="server">
<Legends>
<asp:Legend Name="Default"></asp:Legend>
</Legends>
<series>
<asp:Series Name="Series1" LegendText="Sales"></asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1"></asp:ChartArea>
</chartareas>
</asp:Chart>
I wanted to display a month and the number of sales in that month so I prepared an enum with month names
public enum Month
{
January = 1,
February = 2,
March = 3,
April = 4,
May = 5,
June = 6,
July = 7,
August = 8,
September = 9,
October = 10,
November = 11,
December = 12
}
And then connected a query grouping the sales to the chart
public void BindSalesChart(int year)
{
using (CartDataClassesDataContext context = new CartDataClassesDataContext())
{
var sales = from o in context.Orders
where o.DatePlaced.Value.Year == year
group o by o.DatePlaced.Value.Month into g
select new {Month = g, Orders = g.Count()};
foreach (var sale in sales)
SalesChart.Series["Series1"].Points.AddXY(Enum.Parse(typeof(Month), sale.Month.FirstOrDefault().DatePlaced.Value.Month.ToString()).ToString(), (double)sale.Orders);
}
}
The result was a chart control displaying my sales for the year. 
Posted
2 Aug 2009 12:33 AM
by
Gal Ratner