点击事件后如何绘制google.visualization.datatable?

时间:2014-05-21 17:30:54

标签: jquery google-visualization

如何在点击事件后绘制数据表? 我有下一个js代码:

function drawDataTable() {

var options = {'showRowNumber': true};
var query = new google.visualization.Query($('#connection_spreadsheet_url').val());


function handleQueryResponse(response) {
    if (response.isError()) {
        alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    }
    var data = response.getDataTable();
    (new google.visualization.Table($('#table')[0])).draw(data, options);
}

function sendAndDraw() {
    query.send(handleQueryResponse);
}

google.setOnLoadCallback(sendAndDraw);

}

它的工作正常,但我只想在点击按钮后绘制数据表(例如 $('#button')

2 个答案:

答案 0 :(得分:1)

替换此行:

google.setOnLoadCallback(sendAndDraw);

有这样的事情:

google.setOnLoadCallback(function () {
    $('#button').click(sendAndDraw);
});

这可确保在您尝试使用任何组件之前加载API。您可能希望最初禁用该按钮并在回调运行时启用它,因此用户没有"我点击了此按钮并且没有发生任何事情"问题(如果API加载缓慢)。

答案 1 :(得分:0)

这样的东西? http://jsfiddle.net/9Rawe/我知道它不是一个数据表,但它的工作方式与所有Google可视化方法的工作方式基本相同

<html>
    <head>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
            google.load('visualization', '1', {
                'packages': ['corechart'],
                "callback": drawChart
            });
            function drawChart() {
                var data = google.visualization.arrayToDataTable([
                    ['Year', 'Sales', 'Expenses'],
                    ['2004', 1000, 400],
                    ['2005', 1170, 460],
                    ['2006', 660, 1120],
                    ['2007', 1030, 540]
                ]);

                var options = {
                    title: 'Company Performance'
                };

                $("#button").click(function() {
                    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
                    chart.draw(data, options);
                });
            }
        </script>
    </head>
    <body>
        <input type="submit" value="Display Chart" id="button" />
        <div id="chart_div" style="width: 900px; height: 500px;"></div>
    </body>
</html>