I have pie chart that displays user data for all sites. I want to be able to create another pie chart for only one site depending on the item clicked within the existing pie chart. When I try to do that, however, I'm only able to load an empty bar chart, which ends up replacing the existing pie chart..
My code looks like this:
<div id="chart" style="width:50%;"></div>
<script>
function createChart() {
$("#chart").kendoChart({
dataSource: {
transport: {
read: {
url: "getUserCountsBySite.admin?=siteId" + siteId,
dataType: "json"
}
},
},
title: {
position: "top",
text: "User Distribution by Site"
},
chartArea: {
background: ""
},
seriesDefaults: {
type: "pie",
labels: {
visible: true,
template: "#= category # - #= kendo.format('{0:P}', percentage)#"
}
},
series: [{
startAngle: 150,
field: "userCount",
categoryField: "description",
explodeField: "userCount"
}],
tooltip: {
visible: true,
format: "N0",
template: "#= category # - #= kendo.format('{0:P}', percentage)#"
},
seriesClick: onSeriesClick
});
}
function getDistributionBySubs(siteId) {
$.ajax({
type: "GET",
url: "getUserCountsBySubscription.admin?siteId=" + siteId,
success: function(response) {
$("#chart").kendoChart();
}
});
}
function onSeriesClick(e) {
console.log(kendo.format("Series click :: {0} ({1}): {2}",
e.series.name, e.category, e.value));
getDistributionBySubs(siteId);
}
$(document).ready(createChart);
</script>
</div>
My code looks like this:
<div id="chart" style="width:50%;"></div>
<script>
function createChart() {
$("#chart").kendoChart({
dataSource: {
transport: {
read: {
url: "getUserCountsBySite.admin?=siteId" + siteId,
dataType: "json"
}
},
},
title: {
position: "top",
text: "User Distribution by Site"
},
chartArea: {
background: ""
},
seriesDefaults: {
type: "pie",
labels: {
visible: true,
template: "#= category # - #= kendo.format('{0:P}', percentage)#"
}
},
series: [{
startAngle: 150,
field: "userCount",
categoryField: "description",
explodeField: "userCount"
}],
tooltip: {
visible: true,
format: "N0",
template: "#= category # - #= kendo.format('{0:P}', percentage)#"
},
seriesClick: onSeriesClick
});
}
function getDistributionBySubs(siteId) {
$.ajax({
type: "GET",
url: "getUserCountsBySubscription.admin?siteId=" + siteId,
success: function(response) {
$("#chart").kendoChart();
}
});
}
function onSeriesClick(e) {
console.log(kendo.format("Series click :: {0} ({1}): {2}",
e.series.name, e.category, e.value));
getDistributionBySubs(siteId);
}
$(document).ready(createChart);
</script>
</div>