Google visualization 更改控件包装后从图表包装表检索行数据
我有一个图表包装表和一个绑定到它的“选择”事件侦听器,用于检索行数据,如下所示:Google visualization 更改控件包装后从图表包装表检索行数据,google-visualization,Google Visualization,我有一个图表包装表和一个绑定到它的“选择”事件侦听器,用于检索行数据,如下所示: var table = new google.visualization.ChartWrapper({ 'chartType': 'Table', 'containerId': 'tableDiv', 'options': { 'allowHtml'
var table = new google.visualization.ChartWrapper({
'chartType': 'Table',
'containerId': 'tableDiv',
'options': {
'allowHtml': true,
'page': 'enable',
'width':'100%',
'height':'270px',
'pageSize': 10,
}
});
google.visualization.events.addListener(table, 'ready', function () {
google.visualization.events.addListener(table, 'select', function(){
var selection = table.getChart().getSelection();
var row = selection[0].row;
var x=dataTable.getValue(row, 1);
var y=dataTable.getValue(row,3);
});
});
现在,当我在表格的第一页或显示完整的表格时,这一切都很好。但是,一旦完成某些排序/筛选/分页,检索到的行数据将为false,这是因为隐藏行不被计数
我有一张10行的桌子。在每一行中都有一个字符串-'row1'、'row2'、'row3'…'第10行。然后我使用一个控件包装来过滤表,这样只有第5-10行仍然可见。当我现在单击第5行时,它将其计为第1行,并且我不再获得正确的数据
有没有办法解决这个问题
感谢您使用而不是原始的
数据表
使用ChartWrapper
这将返回过滤后的数据表
google.visualization.events.addListener(table, 'select', function(){
var selection = table.getChart().getSelection();
var row = selection[0].row;
var x=table.getDataTable().getValue(row, 1);
var y=table.getDataTable().getValue(row,3);
});
我有一个类似的问题,但在我的例子中,需要检索Chartwrapper中表未显示的列中的值。幸运的是,我的表中有一个唯一的索引,所以我获取了这个值,然后过滤dataTable中的行以查找包含该值的行索引,然后将该值转换为整数,最后使用该值选择正确的行,在选择后从中选择值,在这种情况下是在新窗口中打开的url
var view = new google.visualization.DataView(dataTable);
view.setRows(view.getSortedRows({column: 11, desc: true}));
view.setColumns([11,0,2,3,4,5,6,7,8,9]);
//create the handler for the selection on the table
google.visualization.events.addListener(table, 'select', selectHandler);
function selectHandler() {
var selection = table.getChart().getSelection();
for (var i = 0; i < selection.length; i++) {
var item = selection[i];
if (item.row != null) {
var id = table.getDataTable().getValue(item.row,0);
var urlRow = dataTable.getFilteredRows([{column: 11, value: id }]);
urlRow = parseInt(urlRow);
var url = dataTable.getFormattedValue(urlRow, 10);
window.open(url,'_blank');
}
}
}
var view=new google.visualization.DataView(dataTable);
view.setRows(view.getSortedRows({column:11,desc:true}));
视图.setColumns([11,0,2,3,4,5,6,7,8,9]);
//为表上的选择创建处理程序
google.visualization.events.addListener(表'select',selectHandler);
函数selectHandler(){
变量选择=table.getChart().getSelection();
对于(变量i=0;i