[英]chart.getSelection() does not work properly with google bar charts
[英]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.