Usare i controlli charting di ASP.NET con ASP.NET MVC

di Matteo Casati, in ASP.NET 3.5, ASP.NET Charting, ASP.NET MVC,

Per utilizzare i Microsoft Chart Controls in applicazioni ASP.NET MVC è sufficiente referenziare gli assembly della libreria (System.Web.DataVisualization e, se si desidera avere il supporto visuale in Visual Studio, System.Web.DataVisualization.Design) all'interno del progetto, quindi modificare il file di configurazione web.config aggiungendo alla sezione (sotto ):

<add tagPrefix="asp"
  namespace="System.Web.UI.DataVisualization.Charting"
  assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

Come già visto nello script #983, è necessario registrare l'HTTPHandler per la visualizzazione dei grafici:

<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"/>

Usando come View Engine ASP.NET (motore predefinito di MVC) possiamo utilizzare il controllo in maniera del tutto simile a quanto faremmo in un'applicazione basata su WebForm, con pieno supporto al drag & drop ed al binding dei dati.

Nel rispetto del paradigma MVC i dati dovrebbero essere recuperati dal controller (tipicamente richiamando il Model ma, per semplicità, questo passaggio è omesso) e restituiti alla view mediante la collezione ViewData:

public ActionResult Index()
{
  Random random = new Random();
  List<int> chartData = new List<int>();
  for (int i = 0; i < 10; i++)
    chartData.Add(random.Next(0, 100));
  ViewData["ChartData"] = chartData;
  return View();
}

La serie di valori sarà utilizzata dalla view ASP.NET come sorgente dati del grafico:

protected void Page_Load(object sender, EventArgs e)
{
  List<int> data = (List<int>)ViewData["ChartData"];
  MyChart.Series["MySerie"].Points.DataBindY(data);
}

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi