我正在尝试显示从excel表格中恢复的数据的谷歌饼图。下面描述了我在google.visualization.arrayToDataTable();中传递的返回字符串,我使用的代码是:
<script type="text/javascript">
google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
var str = '<%= JSNstring %>'; //returned string from C#.
var res= str.replace(/""/g,"'");
res=res.replace(/"/g,"'");
//
var ss=[res];
document.write(ss); //the output of this is: [‘解决方案’,‘总’,‘检查’,23,‘完整’,18,'POP',109]
function drawChart() {
var data = google.visualization.arrayToDataTable(ss);
var options = {
title: 'My Daily Activities',
pieHole: 0.4,
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}
</script>这将显示错误:JavaScript runtime error: First row is not an array.
请告诉我我做错了什么,以及如何改正。提前谢谢。
发布于 2016-05-02 16:27:43
`document.write(ss);`仅适用于此示例,对吗?如果不是这样,删除它并尝试查看函数中ss的值是什么,如下所示-
function drawChart() {
console.write(ss);
var data = google.visualization.arrayToDataTable(ss);
var options = {
title: 'My Daily Activities',
pieHole: 0.4,
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}更新
试着像这样重写你的函数drawChart() -
function drawChart() {
var str = '<%= JSNstring %>'; //returned string from C#.
var res= str.replace(/""/g,"'");
res=res.replace(/"/g,"'");
//
var ss=[res];
var data = google.visualization.arrayToDataTable(ss);
var options = {
title: 'My Daily Activities',
pieHole: 0.4,
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}更新2
我在这里为你创建了jsfiddle jsfiddle,用硬代码编写的数组,你可以看到它是工作的,你的问题出在服务器端或ss的值上。
发布于 2016-05-03 06:16:43
我想你需要把字符串解析成一个数组,试试这个...
google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
var str = '<%= JSNstring %>'; //returned string from C#.
var res= str.replace(/""/g,"'");
res=res.replace(/"/g,"'");
var ss='[' + res + ']';
function drawChart() {
var data = google.visualization.arrayToDataTable(eval(ss));
var options = {
title: 'My Daily Activities',
pieHole: 0.4,
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}https://stackoverflow.com/questions/36977965
复制相似问题