1

我有一个带有两个控件和两个柱形图的示例 Google 可视化仪表板,其中第二个柱形图是使用数据表的聚合绘制的,

'dataTable' : google.visualization.data.group(data, [0],
 [{'column': 2, 'aggregation': google.visualization.data.sum, 'type': 'number'}])

并使用中间表格图表重新绘制,

google.visualization.events.addListener(divPicker, 'statechange',
 function(event) {
 // group the data of the filtered table and set the result in the pie chart.
 columnChart1.setDataTable( google.visualization.data.group(
 // get the filtered results
 table.getDataTable(),
 [0],
 [{'column': 2, 'aggregation': google.visualization.data.sum, 'type': 'number'}]
 ));

所有代码都可以正常工作。但问题是当我选择控件时聚合创建的图表没有正确更改。只有当我两次选择相同的控制选项时它才会改变。

4

1 回答 1

2

经过这么多小时的头脑风暴后,我终于解决了这个问题。

对于修复,我使用了两个事件侦听器,其中一个是ready事件,另一个是statechange事件,因为,

google.visualization.events.addListener(subdivPicker, 'ready',
function(event) {
// group the data of the filtered table and set the result in the pie chart.
columnChart1.setDataTable( google.visualization.data.group(
// get the filtered results
 table.getDataTable(),
 [0],
[{'column': 2, 'aggregation': google.visualization.data.sum, 'type': 'number'}]
));    
// redraw the pie chart to reflect changes
columnChart1.draw();
});

google.visualization.events.addListener(subdivPicker, 'statechange',
 function(event) {
 // group the data of the filtered table and set the result in the pie chart.
 columnChart1.setDataTable( google.visualization.data.group(
 // get the filtered results
 table.getDataTable(),
 [0],
 [{'column': 2, 'aggregation': google.visualization.data.sum, 'type': 'number'}]
 ));
 // redraw the pie chart to reflect changes
 columnChart1.draw();
 });

在这个小提琴中找到更新的代码。

于 2013-04-27T06:33:13.853 回答