簡體   English   中英

谷歌圖表甘特圖中的空 GetSelection() 對象

[英]Empty GetSelection() Object in Google Charts' Gantt Chart

我已經學習使用 Google Charts 一段時間了,到目前為止,我沒有遇到任何問題。 但是,最近我嘗試使用甘特圖,但出現了問題。 我設法使用 SQL 服務器提供的數據正確繪制了圖表。 但是,如果單擊圖表實體,我想提醒所選實體的 ID。

我知道谷歌圖表有這個 getSelection() 函數和事件處理程序。 但是,當我嘗試實現它時,數組返回空(只是 [{}] 寫在控制台中)。 我什至使用了谷歌圖表的例子,但它仍然返回空數組。

這是我使用的代碼:

<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

有人知道我哪里做錯了嗎?

先謝過!

這個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)));
        }
    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM