2017-03-06 118 views
1
<script src="../BootStrapFiles/jsapi" type="text/javascript"></script>  
<script type="text/javascript"> 
    google.load('visualization', '1', { packages: ['corechart'] }); 
    // google.load('visualization', '1.1', { 'packages': ['bar'] }); 
</script> 
<script type="text/javascript"> 
    $(function() { 
     $.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      contentType: 'application/json', 
      url: 'Default.aspx/GetChartData', 
      data: '{}', 
      success: 
      function (response) { 
       drawchart(response.d); 
      }, 

      error: function() { 
       alert("Error loading data!"); 
      } 
     }); 
    }) 
    function drawchart(dataValues) { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Year'); 
     data.addColumn('number', 'Total amount'); 
     // data.addColumn('string', 'Total amount2'); 

     for (var i = 0; i < dataValues.length; i++) { 
      // data.addRows([dataValues[i].Year, dataValues[i].Total], dataValues[i].Year); 
      data.addRow([dataValues[i].Year, dataValues[i].Total]); 
     } 

     // new google.visualization.PieChart 
     // new google.visualization.BarChart( //LineChart //ColumnChart //ComboChart 
     new google.visualization.PieChart(document.getElementById('myChartDivPie')). 
     draw(data, { title: "Sales Pie chart last 8 days " }); 

     new google.visualization.ColumnChart(document.getElementById('myChartDiv')). 
     draw(data, { title: "Sales Column chart last 8 days " }); 

    } 
</script> 

这是我的代码,当我在visual studio 2010上运行它运行完美。但是当试图在Visual Studio 2015图表上运行时,并没有出现。请你帮我解决一下我在做什么错误。是版本问题还是别的什么?我的代码是在visual studio 2010中开发的。每件事情都很完美,但图表不可见。jsapi不在视觉工作室2015

回答

0

第一:没有与load声明

你不应该尝试使用google.visualization命名空间,直到后callback已经解雇相关的callback ...

看到下面的代码片段.. 。

<script src="../BootStrapFiles/jsapi" type="text/javascript"></script> 
<script type="text/javascript"> 
    google.load('visualization', '1', { 
     // set callback 
     callback: getData, 
     packages: ['corechart'] 
    }); 
</script> 
<script type="text/javascript"> 
    // load google first 
    function getData() { 
     $.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      contentType: 'application/json', 
      url: 'Default.aspx/GetChartData', 
      data: '{}', 
      success: 
      function (response) { 
       drawchart(response.d); 
      }, 

      error: function() { 
       alert("Error loading data!"); 
      } 
     }); 
    } 
    function drawchart(dataValues) { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Year'); 
     data.addColumn('number', 'Total amount'); 
     // data.addColumn('string', 'Total amount2'); 

     for (var i = 0; i < dataValues.length; i++) { 
      // data.addRows([dataValues[i].Year, dataValues[i].Total], dataValues[i].Year); 
      data.addRow([dataValues[i].Year, dataValues[i].Total]); 
     } 

     // new google.visualization.PieChart 
     // new google.visualization.BarChart( //LineChart //ColumnChart //ComboChart 
     new google.visualization.PieChart(document.getElementById('myChartDivPie')). 
     draw(data, { title: "Sales Pie chart last 8 days " }); 

     new google.visualization.ColumnChart(document.getElementById('myChartDiv')). 
     draw(data, { title: "Sales Column chart last 8 days " }); 

    } 
</script> 

下一个:建议使用loader.js,而不是jsapi

根据 release notes

...

谷歌排行榜的版本通过jsapi装载机不再被持续更新的剩余可用。从现在起请使用新的gstatic loader

它出现在库中被下载到本地文件夹

较新的库可以在这里找到...

<script src="https://www.gstatic.com/charts/loader.js"></script>

这只会改变load声明...

google.charts.load('current', { 
     // set callback 
     callback: getData, 
     packages: ['bar'] 
    }); 
+0

谢谢你太多@whiteHat。这对我很有用,再次感谢你。 – user3402966

+0

#whitehat我希望我可以:D但我很不幸 – user3402966