【发布时间】: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
有人知道我哪里做错了吗?
之前谢谢!
【问题讨论】:
-
不行,看这个 --> Google Gantt Chart
标签: javascript jquery charts google-visualization gantt-chart