我使用Google HTML服務創建了一個Google可視化儀表板。底層數據表(jjdt)是從幾個數據表(如jadt2,fa)中加入的。如何更新谷歌可視化儀表板的底層google datatable並刷新儀表板視圖?
jjdt = google.visualization.data.join(jadt2,fa,'left',[[0,0]],[1,2,3,4,5,6,7,8,9,10,11],[2,3]);
然後我創建了一個圖表包裝(finalTable)來顯示儀表板中的表格。
finalTable = new google.visualization.ChartWrapper({
'chartType': 'Table',
'containerId': 'table-div',
'options': {
'showRowNumber': false,
'width': '100%',
'height': '100%',
'allowHtml': true,
'pageSize': 20
}
});
dashboard.bind(wwPicker, [finalTable]);
dashboard.draw(jjdt);
這些代碼工作正常。
現在我想要做的就是允許單擊按鈕來將基礎表(jjdt)中的某些單元格設置爲新值並使其反映在儀表板上。但這並不像我想象的那麼簡單。
我試圖兩兩件事:
1)使用JavaScript來更新對應的小區(X,Y的jjdt表),並調用finalTable.draw();
jjdt.setCell(x,y,'New Value');
finalTable.draw();
但是這沒有效果,也沒有錯誤信息。
2)我想也許圖表包裝創建了一個datatable的副本。所以,我試圖獲取數據表背:
var mydt = finalTable.getDataTable();
mydt.setCell(x,y,'New Value');
finalTable.draw();
我認爲這是在文檔中描述的https://developers.google.com/chart/interactive/docs/reference#methods_4
但是正確的方法,我得到了一個錯誤信息說setCell不是一個函數mydt,儘管我可以調用mydt.getValue()。似乎我的數據表是「以某種方式」只讀?但它是一個DataTable不是DataView ..爲什麼?