【发布时间】:2018-09-30 08:20:57
【问题描述】:
我正在尝试使用 Google 饼图。我正在通过我的 API 调用将数据提供给图表。我正在使用 ASP.NET Page 来完成这项工作。以下是页面的完整代码。
"[{\"AuditStatusId\":2,\"Number\":5},{\"AuditStatusId\":3,\"Number\":1},
{\"AuditStatusId\":19,\"Number\":1},{\"AuditStatusId\":23,\"Number\":27},
{\"AuditStatusId\":24,\"Number\":2},{\"AuditStatusId\":27,\"Number\":1},
{\"AuditStatusId\":31,\"Number\":1},{\"AuditStatusId\":38,\"Number\":1}]"
我的 API 正在返回上述数据。
我在每个循环中的以下代码中做一些工作,以将我的数据转换为数组。但这仍然不起作用。
[['Task', 'Hours per Day'], ['2', 5], ['3', 1], ['19', 1], ['23', 27], ['24', 2], ['27', 1], ['31', 1], ['38', 1]]
上面的这个字符串是由self格式化的,如果我把这个静态放在arrayToDataTable方法中,它可以工作,但是如果我在方法中给出变量名,我会得到错误"错误:第一行不是数组。”
<script type="text/javascript">
var data01 = "[['Task', 'Hours per Day']";
google.charts.load('current', { 'packages': ['corechart'] });
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
$.ajax({
type: 'GET',
url: 'http://class.localtest.me/api/dashboard/chartdata',
dataType: 'json',
async: false,
contentType: "application/json; charset=utf-8",
data: {},
success: function (result) {
$.each(JSON.parse(result), function (data, value) {
data01 = data01.concat(',[\'' + value.AuditStatusId + '\',' + value.Number + ']');
})
data01 = data01.concat(']');
},
error: function (xhr, status, error) {
alert(error);
}
});
//var data = new google.visualization.DataTable([['Task', 'Hours per Day'], ['2', 5], ['3', 1], ['19', 1], ['23', 27], ['24', 2], ['27', 1], ['31', 1], ['38', 1]]);
var arr = $.makeArray(data01);
console.log(arr);
var data = new google.visualization.arrayToDataTable(arr);
var options = {
title: 'My Assessments'
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
【问题讨论】:
标签: javascript c# arrays charts google-visualization