Problem
Es sollen Tortendiagramme in ASP.NET angezeigt werden.
Ansatz
Runterladen von
Die Diagramme können über einen Request-Parameter erstellt werden:
http://localhost:51241/PieChartGetParams.aspx?headline=Ich mag Bier&pieces=ein;20;komisches;50;Tortendiagramm;40
- Headline: Ist die Überschrift des Tortendiagramms
- Pieces: Abwechselnd durch Semikolon getrennt immer Tortenstück1;Wert1;Tortenstück2;Wert2;…;TortenstückN;WertN
Lösung – Solution
Laden Sie HighCharts runter und passen Sie untenstehenden Quellcode an:
<script src="pfad/zu/highcharts.js"></script> <script src="charts/zu/exporting.js"></script> <script type="text/javascript" src="Pfad/zu/jquery-1.4.1.min.js"></script>
Erstellen Sie eine ASP.NET-Seite mit folgendem Inhalt:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PieChartGetParams.aspx.cs" Inherits="PieChart" %>
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script><script src="charts/highcharts.js"></script><script type="text/javascript">
$(function () {
function drawPieChart(seriesData) {
$('#container').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: '<%=Request.Params["headline"] %>'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.y} ',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
}
}
},
series: [{
name: "Percentage",
colorByPoint: true,
data: seriesData
}]
});
}
function addToPieChart(arr, key, value)
{
var obj = {};
obj.name = key;
obj.y = value;
arr.push(obj);
}
var arr = []
<% if (Request.Params["pieces"] != null) { string piecesParam = Request.Params["pieces"]; char[] splitchar = { ';'}; int i = 0; string label = ""; foreach(string s in piecesParam.Split(splitchar)) { if(i%2==0) { label = s; } else { Response.Write("addToPieChart(arr, '" + label + "', " + s + ");"); } i++; } } %>
var myJsonString = JSON.stringify(arr);
var jsonArray = JSON.parse(JSON.stringify(arr));
drawPieChart(jsonArray);
});
</script>
<script src="charts/modules/exporting.js"></script>