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