1

変数を 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])でテストしても機能しません

4

1 に答える 1

0

asp.net を介して文字列配列を javascript に送信していましたが、js ではそれを int 配列として使用しましたが、js には存在しません。これらの値を取得する適切な方法は...

    var num = parseInt(Nums[i]);
    data.addRows([  [Names[i], num ] ]);

以上でよろしいでしょうか。

于 2012-12-02T08:16:57.270 に答える