首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google charts javascript错误

Google charts javascript错误
EN

Stack Overflow用户
提问于 2016-05-02 16:16:37
回答 2查看 244关注 0票数 0

我正在尝试显示从excel表格中恢复的数据的谷歌饼图。下面描述了我在google.visualization.arrayToDataTable();中传递的返回字符串,我使用的代码是:

代码语言:javascript
复制
    <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]

代码语言:javascript
复制
  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.

请告诉我我做错了什么,以及如何改正。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-05-02 16:27:43

代码语言:javascript
复制
  `document.write(ss);`

仅适用于此示例,对吗?如果不是这样,删除它并尝试查看函数中ss的值是什么,如下所示-

代码语言:javascript
复制
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() -

代码语言:javascript
复制
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的值上。

票数 0
EN

Stack Overflow用户

发布于 2016-05-03 06:16:43

我想你需要把字符串解析成一个数组,试试这个...

代码语言: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 + ']';

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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36977965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档