我正在使用谷歌散点图来显示表面上的缺陷。所有缺陷都有一个ID,当我点击一个点时,我希望从我可以获取该ID的事件开始,并用它来做其他事情。
在谷歌图表中,我可以从选择的地方连接选择处理程序,但如何在不显示数据表的情况下将数据(或任何其他数据)添加到某个点?
例如:
var dataTable = new google.visualization.DataTable();
dataTable.addColumn('number', 'Width');
dataTable.addColumn('number', 'Yellow');
dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
dataTable.addColumn('number', 'Red');
dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
dataTable.addColumn('number', 'Id'); <-- this doesn't work
最后一列我想添加缺陷的ID并通过selectHandler检索它。
dataTable.addRow([123, 123, 'some tooltip', null, null, 999]);
我在这里添加了ID 999。但我不希望图表显示它。如何向点添加其他(隐藏)数据?
答案 0 :(得分:6)
您可以添加包含所需信息的额外列,然后使用DataView隐藏它们:
var dataTable = new google.visualization.DataTable();
dataTable.addColumn('number', 'Width');
dataTable.addColumn('number', 'Yellow');
dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
dataTable.addColumn('number', 'Red');
dataTable.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } });
dataTable.addColumn('number', 'Id');
// populate dataTable
var view = new google.visualization.DataView(dataTable);
// exclude column 5 (Id)
view.setColumns([0, 1, 2, 3, 4]);
然后使用DataView而不是DataTable绘制图表。
答案 1 :(得分:1)
setRowProperties(rowIndex, properties)
适用于这种情况,删除Id列并添加dataTable.setRowProperties(0,{'id':'999'});
您可以使用getRowProperties(rowIndex);