変数を data.AddRows の文字列パラメータとして使用したい...
function LanguagesChart(Names, Nums) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Language');
data.addColumn('number', 'Employees');
for (i = 0; i < Names.length - 1; i++) {
data.addRows([ [Names[i], Nums[i] ] ]); //This doesn't work
data.addRows([ [' ' +Names[i], Nums[i] ] ]); //This doesn't work
data.addRows([ ['English', Nums[i] ] ]); //This works
}
var options = { 'title': 'Employees Languages', 'width': 400, 'height': 300 };
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('LanguageChart'));
chart.draw(data, options);
}
問題が何であるかがわかります。Javascrip がパラメーター リストから適切な配列を取得していません。私は asp.net を使用して Page_Load でこれらの配列を送信しており、データベースからこれらの値を取得しています...
string[] langs = languages.Split(' ');
string[] Nums = nums.Split(' ');
string serializedLat = (new JavaScriptSerializer()).Serialize(langs);
string serializedLong = (new JavaScriptSerializer()).Serialize(Nums);
ScriptManager.RegisterStartupScript(this, this.GetType(), "LanguagesChart", "LanguagesChart( " + serializedLat + ", " + serializedLong + ");", true);
Nums配列はjsスクリプトで機能しますが、Names配列はalert(Names[i] + Nums[i])でテストしても機能しません