2016-05-02 15 views
0

Excelシートから回復したデータからGoogleの円グラフを表示しようとしています。 返された文字列は、私はgoogle.visualization.arrayToDataTable(); に私が使用しているコードを渡しているその下に記載されている。Google charts javascript error

<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: 

[[ 'ソリューション'、 'TOTAL']、[ 'チェック'、23]、[ 'FULL'、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.

私が間違っているとどのようにそれを修正するためだものを私に教えてください。 ありがとうございます。

+0

は、私はこのためにjsfiddle持つことができます...これを試してみてください、あなたは配列に解析に文字列を必要とすると思いますか? –

+0

@Sagar Rあなたは私の答えjsfiddleで見ることができます。 –

+0

@thescion:兄、その空白はありません。 –

答えて

0
`document.write(ss);` 

この例の場合のみですか?それはので、それを削除してthis-

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); 
    } 

更新

てみてくださいと同じように、SSの値が何であるかをあなたの関数の内部を見るために開始されない場合this-

のようなあなたの関数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あなたの問題はサーバ側で、またはssの値で何か問題があります。

+0

はい、私はしましたが、プログラムは開始ページのみでエラーが発生しています。 'JavaScriptランタイムエラー:最初の行は配列ではありません。 ' –

+0

コンソールを開いて、ss値について書かれたものを確認する必要があります。 –

+0

コンソールを使用しましたが、エラーが発生して壊れています。 'JavaScriptランタイムエラー:オブジェクトがプロパティまたはメソッド 'write''yをサポートしていません –

0

私は

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

これは役に立ちます... – WhiteHat

関連する問題