0

我在控制器中的 c# 中创建了一个数组,如下所示:

[["test", "atest", "btest", "ctest"],["1","2","3","4"]...]

所以它是一个数组数组。然后我将它传递给 ViewBag 中名为ViewBag.TabComplet的视图。现在我需要将该数据数组传递给谷歌图表可视化,如下所示:

google.load("visualization", "1", { packages: ["corechart"], callback: drawVisualization() });
function drawVisualization() {
    var data = google.visualization.arrayToDataTable(@ViewBag.TabComplet);
    var options = {
        title: "Nombres d'incidents ouverts en Hotline en 2013",
        vAxis: { title: "Cups" },
        hAxis: { title: "Month" },
        seriesType: "bars",
        series: { 2: { type: "line"} },
        colors: ["blue", "#01A9DB", "red"]
    };
    var chart = new google.visualization.ComboChart(document.getElementById("chart_div"));
    chart.draw(data, options);
}

但不幸的是,它向我显示了一条错误消息:Unexpected Token] 有人有解决方案吗?

4

1 回答 1

0

我找到了解决方案。对于感兴趣的人,javascript 函数arrayToDataTable 分析每列中的数据类型,如果您要显示的数据不是 int,则会显示错误并显示数据类型不正确。如果您想避免使用该函数,您可以使用不同的函数addRowaddColumn、.. 来构建正确的数据数组。据此,我在控制器中创建了一个函数,由 ajax 调用调用,它返回一个 JSON 数组,如下所示:

[["Mois","Nombre incidents","Nombre incidents pris en direct"],["Jan",15,2],["Fév",9,5],["Mar",14,3],["Avr",19,9],["Mai",9,8],["Juin",12,6],["Juil",13,5],["Aoû",4,3],["Sept",11,0],["Oct",0,0],["Nov",0,0],["Dec",0,0]]

如您所见,它是一个数组数组,其中第一个数组是每个后续数据的标签,然后每个数组的第一个值是一个字符串,它将是每个数据数组的 X 轴的标签。

您可以直接传递 JSON 作为图表的来源。您不需要将其解析为 javascript 数组。

于 2013-09-20T07:59:34.793 回答