2016-04-19 50 views
2

我有一個線型圖,並應用到線圖的daterangefilter兩種類型的谷歌圖表之間切換,這是我現在的代碼...如何添加按鈕在儀表板

function go(){ 

window.setTimeout(function(){ 
var p=0; 
var table = document.getElementById('mytable'); 
var rows = table.getElementsByTagName('tr'); 
var i, j, cells; 
var distance=[]; 
var date=[]; 
var entryid=[]; 
j=rows.length; 
for (i = 1; i < j; i++) { 
cells = rows[i].getElementsByTagName('td'); 
if (!cells.length) { 
    continue; 
} 
distance[i-1] = parseInt(cells[1].innerHTML); 
date[i-1]=new Date(reverse(cells[2].innerHTML)); 
entryid[i-1]=cells[0].innerHTML; 
} 
var c=[]; 
for (var z=0;z<distance.length;z++){ 
c.push([date[z],distance[z]]); 
} 
/*document.getElementById('cvs').innerHTML=c;*/ 
function reverse(f){ 
var g=f.split("/"); 
var goodstr=g[1]+"/"+g[2]+"/"+g[0]; 
return goodstr; 
} 
google.charts.load('44', { 
callback: drawBackgroundColor, 
packages: ['corechart','controls'] 
}); 
function drawBackgroundColor() { 

var data = new google.visualization.DataTable(); 
data.addColumn('date', 'Date'); 
data.addColumn('number', 'Distance'); 

data.addRows(c); 

var options = { 
hAxis: { 
    title: 'Date' 
}, 
vAxis: { 
    title: 'Distance Ran' 
}, 
backgroundColor: '#f1f8e9' 
}; 
var control; 
var chartWrapper; 
var dash; 
dash = new google.visualization.Dashboard(
document.getElementById('dashboard_div')); 
var controlOptions = { 
    filterColumnIndex: 0 
}; 
/////////////////////////// 


control = new google.visualization.ControlWrapper({ 
controlType: 'DateRangeFilter', 
containerId: 'control_div', 
options: controlOptions 
}); 


chartWrapper = new google.visualization.ChartWrapper({ 
chartType:'LineChart',//'LineChart', //'LineChart', 
containerId: 'cvs', 
options: options 
}); 

dash.bind([control], [chartWrapper]); 

dash.draw(data); 

} 
}, 5 * 1000); 

我想修改此代碼添加按鈕以在具有相同數據,線圖和條形圖的兩種圖表之間切換。可能是我需要添加chartType =「BarChart」另一個chartWrapper和使用一些if,else語句,但我似乎無法弄清楚。有人可以幫我做到這一點。提前致謝 :) 。

+0

您可以用'chartWrapper.setChartType(類型) '切換圖表類型,然後重新繪製圖表以查看更改... – WhiteHat

回答

2

走在doc看看這個例子:https://developers.google.com/chart/interactive/docs/gallery/controls#7-draw-your-dashboard

這似乎正是你需要的

像這樣的東西應該工作

document.getElementById('b2').addEventListener("click", changeType); 
      function changeType(){ 
      chartWrapper.setChartType('ColumnChart'); 
      chartWrapper.draw(); 
      } 
+0

我在儀表板div中添加了一個按鈕並給它一個id =「b2」,並將此代碼添加到回調函數var barsButton = document中。的getElementById( 'B2' ); google.visualization.events.addListener(barsButton,'click',function(){ chartWrapper.setChartType('BarChart'); }); –

+0

但它沒有任何作用 –

+0

之後,把圖表.Wrapper.draw(); – rick

相關問題