di: Simone Moretti 17 Marzo 2010
Finora abbiamo visto come prelevare i dati da una base dati ma è possible prelevare dati da qualsiasi sorgente gestita da ADO.NET come ad esempio documenti XML, fogli Excel, file CSV, ecc. Questi dati vengono messi in oggetti DataReader, DataTable, DataSet e quindi agganciati al Chart con uno dei metodi proposti precedentemente.
La nostra applicazione Web prende i dati da file XML, proponiamo di seguito il file XML che contiene le categorie degli articoli:
<?xml version="1.0" encoding="utf-8"?>
<categorie>
<categoria>
<id_categoria>1</id_categoria>
<descrizione>Informatica</descrizione>
<articoli>5</articoli>
</categoria>
<!-- ... -->
</categorie>
Per accedere il file XML e leggere i dati in esso contenuti usiamo le API LINQ to XML:
XElement categorie = XElement.Load(Server.MapPath("~/App_Data/categorie.xml"));
foreach (XElement node in categorie.Elements("categoria"))
{
string id_categoria = node.Element("id_categoria").Value;
string categoria = node.Element("descrizione").Value;
string articoli = node.Element("articoli").Value;
CategorieChart.Series["CategorieSerie"].Points.AddXY(categoria, articoli);
CategorieChart.Series["CategorieSerie"].MapAreaAttributes = "target=\"_blank\"";
//recupero il datapoint appena inserito e vi aggiungo le proprietà url e tooltip
System.Web.UI.DataVisualization.Charting.DataPoint dp = new System.Web.UI.DataVisualization.Charting.DataPoint();
dp = CategorieChart.Series["CategorieSerie"].Points[CategorieChart.Series["CategorieSerie"].Points.Count - 1];
dp.Url = "articoli.aspx?id_categoria=" + id_categoria;
dp.ToolTip =categoria;
}
Questo codice si trova all'interno dell'evento Page_Load, legge i nodi categoria e sfrutta i campi descrizione ed articoli per alimentare la serie di dati del Chart.
Grazie alla proprietà URL dei Data Point possiamo associare ad ogni punto un indirizzo Web (una azione). In questo modo, quando un utente clicca su un punto, appoderà all'indirizzo che abbiamo specificato.
Nel nostro esempio usiamo la proprietà URL per puntare al grafico di dettaglio che si aprirà cliccando su una fetta del grafico a torta. Il campo id_categoria ci informa su quale categoria del grafico ha cliccato l'utente.
I Data Point hanno anche una proprietà 'ToolTip' che ci permette di mostrare un fumetto quando l'utente si sofferma su una fetta del grafico a torta. Nel tooltip possiamo aggiungere informazioni riepilogative come il nome della categoria, il numero totale di articoli che ne fanno parte e la relativa percentuale.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |