我已经设法按状态获得了列表中项目的计数,但似乎不知道如何将数据添加到Chart.js中。我尝试从图表中引用我的数据集,但似乎不起作用。如果有任何帮助,我将不胜感激。我拼凑了一些代码,试图让它起作用,但似乎不能得到最后一部分。ps。此代码正在SharePoint内容编辑器中使用
谢谢你的好意,
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<button onclick="GetListItems();" type="button">Get All List Items</button>
<div>
<canvas id="myChart"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
function GetListItems() {
var url = "https://contoso.sharepoint.com/sites/Mysite/_api/web/lists/getByTitle('Mylist')/items?$top=500";
$.ajax({
url: url,
type: "GET",
headers: {
"accept": "application/json; odata=verbose"
},
success: onSuccess
});
}
function onSuccess(data) {
var items = data.d.results;
const MyDataset = [];
var NewItems = items.filter(function(ItemStatus) {
return ItemStatus.Status == "New";
});
var InProcItems = items.filter(function(ItemStatus) {
return ItemStatus.Status == "In Process";
});
var CompItems = items.filter(function(ItemStatus) {
return ItemStatus.Status == "Completed";
});
MyDataset.push(NewItems.length);
MyDataset.push(InProcItems.length);
MyDataset.push(CompItems.length);
console.log(MyDataset);
}
const labels = ['New', 'Completed', 'Inproccess'];
const data = {
labels: labels,
datasets: [{
label: 'My First dataset',
backgroundColor: 'rgb(255, 99, 132)',
borderColor: 'rgb(255, 99, 132)',
data: [5, 5, 5, 2, 2, 30, 45],// use MyDataset here instead of random.
}]
};
const config = {
type: 'bar',
data: data,
options: {}
};
</script>
<script>
const myChart = new Chart(
document.getElementById('myChart'),
config
);
</script>
2条答案
按热度按时间bwitn5fc1#
这应该是你所期望的。我不能测试,因为数据 AJAX 调用是不公开的。
sxpgvts32#
您指定3个标签,并在数据中提供7个元素。
要解决问题,请尝试使用简单的配置
当显示某些内容时,尝试增加复杂性。
"通过猜测,我相信你想要这样的东西"
这很难帮助你,因为你没有指定你想看到什么样的结果图表...
您的代码正在运行(代码段)
第一个