Properties 谷歌图表getSelection没有';没有列属性

Properties 谷歌图表getSelection没有';没有列属性,properties,google-visualization,getselection,Properties,Google Visualization,Getselection,当我使用: chart.getChart().getSelection()[0] 在图表上(从chartwrapper,因此首先是getChart()),getSelection()函数返回 即使我的“图表”是一个表,但只返回一个行属性而不返回列属性,并且单击其中的任何位置都应返回一个行和列属性 这是一个已知的谷歌图表错误吗?有人知道解决方法吗 我也在谷歌群组上找到了这个主题: 这里他们说: 当前,表对象仅支持行选择,因此列属性始终未定义。如果这对您很重要,您可以通过在每个单元格的格式化值中

当我使用:

chart.getChart().getSelection()[0]
在图表上(从chartwrapper,因此首先是getChart()),getSelection()函数返回 即使我的“图表”是一个表,但只返回一个行属性而不返回列属性,并且单击其中的任何位置都应返回一个行和列属性

这是一个已知的谷歌图表错误吗?有人知道解决方法吗

我也在谷歌群组上找到了这个主题:

这里他们说: 当前,表对象仅支持行选择,因此列属性始终未定义。如果这对您很重要,您可以通过在每个单元格的格式化值中添加一些特殊的html代码来捕获这些事件


有人知道怎么做吗?

您可以用HTML格式化您的值,并在绘图选项中传递'allowtml:true'。然后,当用户单击单元格值时,您的HTML可以引发事件/执行您想要的js

例如,单击以下项目将发出警报:

function drawTable() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('number', 'Salary');
    data.addColumn('boolean', 'Full Time Employee');
    data.addRows([
        ['Ted',  {v: 10000, f: '<span onclick="alert(0)">$10,000</span>'}, true],
        ['Jim',   {v:8000,   f: '<span onclick="alert(1)">$8,000</span>'},  false],
        ['Alice', {v: 12500, f: '<span onclick="alert(2)">$12,500</span>'}, true],
        ['Bob',   {v: 7000,  f: '<span onclick="alert(3)">$7,000</span>'},  true]
    ]);

    var table = new google.visualization.Table(document.getElementById('table_div'));
    google.visualization.events.addListener(table, 'select', function () {
        var s = table.getSelection();
        document.getElementById('row').innerHTML = s[0].row;
        document.getElementById('col').innerHTML = s[0].column;
        console.log(s);
    });
    table.draw(data, {showRowNumber: true, allowHtml: true});
}

google.load('visualization', '1', {packages:['table'], callback: drawTable});
函数drawTable(){
var data=new google.visualization.DataTable();
data.addColumn('string','Name');
data.addColumn('number','Salary');
data.addColumn('boolean','全职雇员');
data.addRows([
['Ted',{v:10000,f:'10000'},对],
['Jim',{v:8000,f:'8000'},假],
['Alice',{v:12500,f:'12500'},对],
['Bob',{v:7000,f:'7000'},对]
]);
var table=新的google.visualization.table(document.getElementById('table_div');
google.visualization.events.addListener(表'select',函数(){
var s=table.getSelection();
document.getElementById('row')。innerHTML=s[0]。行;
document.getElementById('col')。innerHTML=s[0]。列;
控制台日志;
});
table.draw(数据,{showRowNumber:true,allowHtml:true});
}
load('visualization','1',{packages:['table'],callback:drawTable});
见:

更简洁的方法是使用自定义格式化程序:


<> > < p> > p > > <代码>谷歌.Visual.Tabe<代码>只支持行选择(它解释了为什么列属性返回null),您可以考虑以下方法来访问列属性:

google.load('visualization','1'{
套餐:[“表”]
});
setOnLoadCallback(drawTable);
函数drawTable(){
var data=new google.visualization.DataTable();
data.addColumn('string','Name');
data.addColumn('number','Salary');
data.addColumn('boolean','全职雇员');
data.addRows([
[“迈克”{
v:10000,
f:‘一万元’
},
真的
],
[“吉姆”{
v:8000,
f:‘8000元’
},
假的
],
[“爱丽丝”{
v:12500,
f:‘12500元’
},
真的
],
[“鲍勃”{
v:7000,
f:‘7000元’
},
真的
]
]);
var table=新的google.visualization.table(document.getElementById('table_div');
google.visualization.events.addListener(表'select',函数(){
selectHandler(表);
});
表.绘制(数据、{
showRowNumber:false
});
}
函数selectHandler(表){
var selection=table.getSelection();
如果(selection.length==0)
返回;
var e=事件| | window.event;
var cell=e.target;//获取所选单元格
document.getElementById('output').innerHTML=“行:”+selection[0]。行+“列:”+cell.cellIndex;
}


你能澄清一下你想做什么吗?我想这可能也会对你有所帮助,因为它似乎是相关的。我想在谷歌图表表中获取选定的单元格值。就像谷歌说的,在这里应该是可能的:在这里:。然而,当你查看他们的例子时……它甚至不起作用。所以我想它还没有实施。如果有人能找到工作来完成这项工作,那就太好了。您提到的问题是相关的,但我知道如何捕获事件,这是gchart表不返回列坐标的问题。您是对的,它似乎已经坏了——这些示例在几个月前就开始工作了,即使更改API版本似乎也无法修复它。真奇怪。