Ako generovať grafy v ASP.NET
Ak potrebujete prezentovať väčšie množstvo dát, použitie grafov je často ideálne riešenie. Graf dokáže vyjadriť číselné dáta často lepšie ako rozsiahla tabuľka.
Generovanie grafov v ASP.NET je s použitím správnych nástrojov jednoduché. Potrebujete k tomu Microsoft Chart Controls for Microsoft .NET Framework 3.5 a Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008. Uvádzaný postup funguje pre .NET Framework 3.5 a Visual Studio 2008, pre novšie verzie je potrebné stiahnuť potrebné nástroje pre príslušnú verziu.
Prvým krokom je nastaviť web.config na prácu s Chart Controls:
<appSettings>
...
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=~/App_Data/;" />
</appSettings>
<system.web>
...
<httpHandlers>
...
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>
...
</system.web>
...
<system.webServer>
...
<handlers>
...
<remove name="ChartImageHandler"/>
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>
Vďaka Chart Controls Add-on je možné vo Visual Studiu použivať priamo komponenty určené na prácu s grafmi, najčastejšie budete používať komponentu Chart.
Napríklad typický koláčový graf vytvoríte nasledujúcim spôsobom:
Chart1.Series[0].ChartType = SeriesChartType.Pie;
Chart1.Series[0]["PieLabelStyle"] = "Inside";
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;
Chart1.Titles.Add("Pomer mužov a žien");
string[] xValues = {"Muži", "Ženy"};
int[] yValues = {48,52};
Chart1.Series[0].Points.DataBindXY(xValues, yValues);
Chart1.Legends.Add(new Legend("Legenda"));
Chart1.Legends["Legenda"].Title ="Pohlavie";
Chart1.Series[0].Legend = "Legenda";