1

我想用我的 VB.Net 3.5 Web 应用程序后面的代码中计算的数字替换硬编码的数字。换句话说,就是下面的数字 20、13 和 34。在此先感谢您的帮助。

<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Tiers', 'Apps'],
      ['Tier 1', 20],
      ['Tier 1.5', 13],
      ['Tier 2', 34]
    ]);

    var options = {
      title: 'Balance'
    };

    var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>
4

2 回答 2

2

假设这需要比仅提供 3 个数字更通用,您可以在后面的代码中创建一个 JSONArray 变量(如果使用 MVC,则为模型的一部分等)。这是一个简单的示例,应该可以帮助您:

<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([ <%= JSONArray %> ]);
  ...

在您后面的代码中,您将从正在执行的任何计算中构建字符串 JSON:

Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected JSONArray As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        JSONArray = "" + _
              "['Tiers', 'Apps'], " + _
              "['Tier 1', 20], " + _
              "['Tier 1.5', 13], " + _
              "['Tier 2', 34]"

    End Sub

End Class
于 2012-10-08T03:13:23.867 回答
0

您可以使用 Google.DataTable.Net.Wrapper 库以完全类型安全的方式为您创建一个方便的 JSON 字符串,而不是直接在代码中操作字符串。

在这里您可以找到一个广泛的示例:http ://www.agile-code.com/blog/using-the-google-datatable-net-wrapper/

代码很简单:

using Google.DataTable.Net.Wrapper;
private static string GetDataTableJson()
{
    var dt = new DataTable();

    //Act -----------------
    dt.AddColumn(new Column(ColumnType.Number, "Tiers"));
    dt.AddColumn(new Column(ColumnType.String, "Apps"));

    var row1 = dt.NewRow();
    var row2 = dt.NewRow();
    var row3 = dt.NewRow();


    row1.AddCellRange(new[] { new Cell("Tier 1"),   new Cell(20) });
    row2.AddCellRange(new[] { new Cell("Tier 1.5"), new Cell(13) });
    row3.AddCellRange(new[] { new Cell("Tier 2"),   new Cell(34) });


    dt.AddRow(row1);
    dt.AddRow(row2);
    dt.AddRow(row3);

    return dt.GetJson();
}

这将返回你这样一个 JSON 表示

{
"cols": [
            {"type": "string" ,"id": "Tiers" }, 
            {"type": "number" ,"id": "Apps" }
        ],
"rows" : 
        [
            {"c" : [{"v": "Tier 1"},   {"v": 20}]}, 
            {"c" : [{"v": "Tier 1.5"}, {"v": 13}]}, 
            {"c" : [{"v": "Tier 2"},   {"v": 34}]}
        ]
}

然后你可以直接嵌入到你的javascript中

// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
于 2013-07-03T21:42:27.317 回答