单击时从表行中获取数据

时间:2014-01-28 15:21:02

标签: javascript html google-visualization

我在这里有一个表:http://jsbin.com/IhEmetI/8使用Google可视化API构建,代码如下:http://jsbin.com/IhEmetI/8/edit

CODE:

 var table = new google.visualization.ChartWrapper({
          'chartType': 'Table',
          'containerId': 'chart2',
          'cssClassNames': 'cssClassNames',
          'options': {
        cssClassNames: cssClassNames,
        allowHtml: true
    }
        });

        // Create a dashboard
        new google.visualization.Dashboard(document.getElementById('dashboard')).
            // Establish bindings, declaring the both the slider and the category
            // picker will drive both charts.
            bind([slider, categoryPicker, stringFilter], [pie, table], [stringFilter, table]).
            // Draw the entire dashboard.
            draw(data, {'allowHtml':true, 'cssClassNames': 'cssClassNames'});      }

现在我想在点击某些表行时获取数据行? 我怎么能这样做?

我如何用javascript做到这一点? 谷歌API函数是否有一些内置功能?

2 个答案:

答案 0 :(得分:1)

您需要为表使用'select'处理程序。使用ChartWrapper,其语法与正常情况略有不同(因为您必须在包装器的'ready'事件处理程序中包装Table的事件处理程序)。它的工作原理如下:

google.visualization.events.addListener(table, 'ready', function () {
    google.visualization.events.addListener(table.getChart(), 'select', function () {
        var selection = table.getChart().getSelection();
        // iterate over all selected rows
        for (var i = 0; i < selection.length; i++) {
            // do something with selection[i].row
        }
    });
});

您必须迭代所有选定的行,因为用户可以从表中选择多行。

答案 1 :(得分:0)

使用data.getFormattedValue(selection [i] .row,column) 由于某些原因,getValue对于整数列总是返回0,对于字符串总是为空!