【问题标题】:Dynamically generate Google Chart type from Dropdown list从下拉列表动态生成谷歌图表类型
【发布时间】:2014-10-23 10:19:15
【问题描述】:

我在我的网络应用程序上使用 Google 图表,并想更改使用下拉列表显示的图表。

下拉列表将图表类型存储在后面的代码中,我正在尝试将 VB.net 变量插入到 var 图表变量中。

var chart = new google.visualization.datachart(document.getElementById('chart_div')); chart.draw(数据, 选项);

粗体值定义显示哪个图表(ColumnChart、LineChart 等)

如何最好地做到这一点?

【问题讨论】:

    标签: asp.net vb.net google-visualization


    【解决方案1】:

    简单的方法是根据你要绘制的图表来设置:

    var chart;
    if(chartType== 'LineChart' ){
        chart= new google.visualization.LineChart(document.getElementById('chart_div')); 
    }else if(chartType== 'BarChart' ){
        chart= new google.visualization.BarChart(document.getElementById('chart_div')); 
    }// and so on
    
    chart.draw(data, options);
    

    对于更动态的方式,您需要使用 chartWrapper,您可以使用字符串设置图表类型,或者执行以下操作:

    chartWrapper.setChartType('LineChart');
    

    【讨论】:

      【解决方案2】:

      您可以通过多种不同的方式处理此问题。 juvian 指出了其中的几个,但如果您想从 ASP.net 获得更直接的内容:

      var chart = new google.visualization.<%=chartType %>(document.getElementById('chart_div'));
      

      其中chartType 是与图表类型匹配的字符串,例如"BarChart""LineChart"

      如果你走这条路,你应该在服务器端验证图表类型,这样你就不会最终尝试访问不存在的图表类型。

      【讨论】:

      • 感谢您的建议,这是我最初尝试并发现问题的方法。当您尝试将服务器端变量插入命令时,您会收到一个错误,即它需要一个标识符并且不能接受服务器端变量。
      • 抛出该错误的是 ASP.net 还是 javascript? JS 不应该知道(或关心)服务器在后端做了什么来调整你的代码。
      猜你喜欢
      • 2014-12-10
      • 1970-01-01
      • 2015-09-07
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2015-12-05
      • 1970-01-01
      相关资源
      最近更新 更多