【问题标题】:Empty GetSelection() Object in Google Charts' Gantt ChartGoogle Charts 甘特图中的空 GetSelection() 对象
【发布时间】:2016-04-24 15:08:12
【问题描述】:

我学习使用 Google Charts 已经有一段时间了,到目前为止,我没有遇到任何问题。但是,最近我尝试使用甘特图,但出现了一个问题。我设法用 SQL 服务器提供的数据正确地绘制了一个图表。但是,如果单击图表实体,我想提醒所选实体的 ID。

我了解 Google Charts 有这个 getSelection() 函数和事件处理程序。但是,当我尝试实现它时,数组返回空(只是 [{}] 写在控制台中)。我什至使用了 Google Charts 的示例,但它仍然返回空数组。

这是我使用的代码:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script>
    google.charts.load('current', {'packages':['gantt']});
    google.charts.setOnLoadCallback(drawChart);

    function daysToMilliseconds(days) {
      return days * 24 * 60 * 60 * 1000;
    }

    function drawChart() {

      var data = new google.visualization.DataTable();
      data.addColumn('string', 'Task ID');
      data.addColumn('string', 'Task Name');
      data.addColumn('date', 'Start Date');
      data.addColumn('date', 'End Date');
      data.addColumn('number', 'Duration');
      data.addColumn('number', 'Percent Complete');
      data.addColumn('string', 'Dependencies');

      data.addRows([
        ['Research', 'Find sources',
         new Date(2015, 0, 1), new Date(2015, 0, 5), null,  100,  null],
        ['Write', 'Write paper',
         null, new Date(2015, 0, 9), daysToMilliseconds(3), 25, 'Research,Outline'],
        ['Cite', 'Create bibliography',
         null, new Date(2015, 0, 7), daysToMilliseconds(1), 20, 'Research'],
        ['Complete', 'Hand in paper',
         null, new Date(2015, 0, 10), daysToMilliseconds(1), 0, 'Cite,Write'],
        ['Outline', 'Outline paper',
         null, new Date(2015, 0, 6), daysToMilliseconds(1), 100, 'Research']
      ]);

      var options = {
        height: 275
      };

      var chart = new google.visualization.Gantt(document.getElementById('chart_div'));

      // When the table is selected, update the orgchart.
      google.visualization.events.addListener(chart, 'select', function() 
      {
          var obj = chart.getSelection();
          alert(obj[0].column);
      });

      chart.draw(data, options);
    }
</script>

<div id="chart_div"></div>

这是 jsfiddle:https://jsfiddle.net/2ku7tzex/1/#&togetherjs=cjVlbdFhV3

有人知道我哪里做错了吗?

之前谢谢!

【问题讨论】:

标签: javascript jquery charts google-visualization gantt-chart


【解决方案1】:

这个https://jsfiddle.net/hrtgp54r/ 为我解决了这个问题。

    google.visualization.events.addListener(chart, 'select', selectHandler);    

    function selectHandler(){
        var selections = chart.getSelection();
        if (selections.length == 0)
        {
            alert('Nothing selected');
        }
        else
        {
            var selection = selections[0];
            console.info(selection);
            alert('You selected ' + (selection.row == null ? 'something' : data.getValue(selection.row, 0)));
        }
    };

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多