I want to create chart from List in SharePoint 2013 with:
and followed : https://www.simego.com/Blog/2013/09/Charts-and-Office-365-SharePoint-Online
blog but it is not working
my code is:
<script type="text/javascript" src="/sites/testdev/SiteAssets/Chart.js" ></script>
<script type="text/javascript">
var collListItem; //ListItems
var chartX = []; //X-Axis Labels
var chartY = []; //Y-Axis Values
var chartJs = "/sites/testdev/SiteAssets/Chart.js";
var listName = "TestC"; //Data List Name
var xAxisName = "Title"; //X-Axis Label Names from List
var yAxisName = "Values"; //Y-Axis Values from List
var chartId = "myChart"; //Chart Canvas Div
SP.SOD.executeOrDelayUntilScriptLoaded(function() {
var clientContext = new SP.ClientContext.get_current();
var oList = clientContext.get_web().get_lists().getByTitle(listName);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(function() {
var listItemEnumerator = collListItem.getEnumerator();
//Create Points from ListData
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
chartX.push(oListItem.get_item(xAxisName));
chartY.push(oListItem.get_item(yAxisName));
}
//Load Chart JS
loadJS(chartJs, function() {
//Generate Data
var data = {
labels: this.chartX,
datasets: [
{
data: this.chartY
}
]
};
//Display Chart
var ctx = document.getElementById(chartId).getContext("2d");
var myNewChart = new Chart(ctx).Bar(data);
});
}, null);
}, 'SP.js');
function loadJS(src, callback) {
var s = document.createElement('script');
s.src = src;
s.async = true;
s.onreadystatechange = s.onload = function() {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
</script>
