当我点击 Google 可视化 ChartWrapper
表中的订单项时,我想以编程方式更新所点击行中的产品值。
我被困在这里:dataTable.setvalue(row,col,valNew);
根据 documentation,我应该能够使用 setvalue
更新数据中的值。我收到错误“setvalue 不是函数”。
希望有人能指出我正确的方向...
到目前为止,这是我的代码。问题出在 selectHandler_table_db
函数中。
google.charts.load('current',{
packages: ['table','controls']
}).then(function() {
var data = new google.visualization.DataTable();
data.addColumn('date','Date');
data.addColumn('string','Product');
data.addColumn('number','Quantity');
var dt1 = new Date(moment().endOf('month').subtract(3,'month'));
var dt2 = new Date(moment().endOf('month').subtract(2,'month'));
var dt3 = new Date(moment().endOf('month').subtract(1,'month'));
var dt4 = new Date(moment().startOf('month'));
var dt5 = new Date(moment().startOf('month').add(1,'day'));
var dt6 = new Date(moment().startOf('month').add(2,'day'));
data.addRows([
[dt1,'a',100],[dt2,'b',200],[dt3,300],[dt4,400],[dt5,500],[dt6,600],]);
var view = new google.visualization.DataView(data);
example_dashboard(view);
});
function example_dashboard(view) {
var dashboard = new google.visualization.Dashboard(document.getElementById('div_dashboard'));
var categoryPicker1 = new google.visualization.ControlWrapper({
controlType: 'CategoryFilter',containerId: 'div_categoryPicker1',options: {
filterColumnIndex: view.getcolumnIndex('Product'),matchType: 'any',ui: {
labelStacking: 'vertical',allowTyping: false,allowMultiple: false,allowNone: true
}
}
});
var table_db = new google.visualization.ChartWrapper({
chartType: 'Table',containerId: 'div_table',options: {
width: '100%',height: 'auto',}
});
dashboard.bind(categoryPicker1,table_db);
dashboard.draw(view);
google.visualization.events.addListener(table_db,'select',selectHandler_table_db);
function selectHandler_table_db() {
let chartWrapper = table_db.getchart();
let dataTable = table_db.getDataTable();
let row = chartWrapper.getSelection()[0].row;
let col = 1;
let valNew = "c";
//This errors dataTable.setvalue is not a function
dataTable.setvalue(row,valNew);
chartWrapper.draw();
} //END selectHandler_table
} //END example_dashboard(){
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id='div_dashboard'>
<div id='div_categoryPicker1'></div>
<div id="div_table"></div>
</div>