ASP.NET 4.0 Chart control – XML file
Binding
The
Microsoft Chart Controls for .NET
Framework allows you create simple, feature
rich and attractive 2D and 3D charts for web (ASP.NET) and windows applications
(WinForms). In this article, we will explore ASP.NET Chart Controls. The ASP.NET
chart controls enables you to create visually compelling charts for web
applications and supports almost all major 2D/3D chart series types. You can
download the samples here to check them out.
The ASP.NET Chart control is a part of the .NET Framework 4.0
release. If you are using ASP.NET 4.0, the Chart control is included in the
ToolBox and you can drag and drop the chart control from the Data Tab to use
it.
If you
are using .NET 3.5 SP1, the chart control has to be separately downloaded
over here.
Let us get started:
Step 1: Create an ASP.NET 4.0 website and drag and drop a
chart control and a Button control from the toolbox to the Default.aspx webpage.
Set up the chart control to use Area3DStyle to implement 3D for all series in
chart area, as shown below:
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button
ID="btnBind" runat="server" Text="Bind Chart to
XML"
onclick="btnBind_Click" />
<asp:Chart
ID="chartBooks" runat="server" Width="700"
Height="450"
BackColor="LightBlue" BackSecondaryColor="AliceBlue"
BackGradientStyle="TopBottom" BorderColor="DarkBlue">
<Series>
<asp:Series
Name="Series1" ChartArea="ChartArea1" ChartType="Column"
Color="Wheat">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea
Name="ChartArea1" Area3DStyle-Enable3D="true"
BackColor="#0066cc" BorderColor="DarkBlue">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</asp:Content>
Step 2: We be plotting the chart based on the XML Data. I
have used a sample books.xml available in the source code of this article.
Here’s a sample structure of the XML file
Step 3: On the button click event, write the following code
to populate the chart, with the data read from the XML File
C#
protected void btnBind_Click(object sender, EventArgs e)
{
string dataPath = MapPath(".") + "\\books.xml";
DataSet ds = new DataSet();
ds.ReadXml(dataPath);
DataTable dt =
ds.Tables[0];
DataView dataView = new DataView(dt);
// Bind
XML
chartBooks.Series[0].Points.DataBindXY(dataView, "title", dataView, "price");
}
Protected Sub btnBind_Click(ByVal sender As Object,
ByVal e As EventArgs)
Dim dataPath As String =
MapPath(".") & "\books.xml"
Dim ds As
New DataSet()
ds.ReadXml(dataPath)
Dim dt As
DataTable = ds.Tables(0)
Dim dataView As New
DataView(dt)
'
Bind XML
chartBooks.Series(0).Points.DataBindXY(dataView, "title", dataView, "price")
End
Sub
In the code shown above, we are using the DataSet.ReadXML to read
the XML data into a DataSet. We then create a DataView using the DataTable
(obtained from the DataSet) and then use ‘DataBindXY’ to bind the X and Y values
of the collection to the specified column of the DataView, in our case ‘title’
on the X-Axis and ‘price’ on the Y-Axis.
That’s it. The resultant output is as shown
below: