试图更新使用jQuery一个谷歌的可视化(Trying to update a google vis

2019-07-31 02:05发布

我是相对缺乏经验,所以请多多包涵。

我正在开发使用谷歌可视化API简单的仪表板。 我在vb.net开发。 我有批注的时间线,强度图,并在我的apsx一组表。

我所要做的是更新基于用户选择使用注解时间轴工具日期范围的强度图和表格。

我希望没有做一个完整的页面加载仅更新这些可视化。 显然,一个伟大的方式做,这是可视化分为自包含的aspx页面和使用jQuery“负荷”他们进入一个div。

我说,很明显,因为这是行不通的。 当我尝试更新使用jQuery包含谷歌可视化一个aspx,我得到的消息“在www.google.com上......正在加载数据”在浏览器中,它只是连续运行,永远不会返回。 我由有经验的开发人员跑了这一点,他被难倒,但认为必须在谷歌API和jQuery之间的冲突。

任何提示,建议,替代解决方案是非常感谢!

Answer 1:

只是编码的东西,可以帮助你。 测试BARCHART,ColumnChart中,线型图和AreaChart,对我来说效果很好(按设计将无法正常进行工作扇形图)。

主要构造函数代码:

function Charts (options){
    var self = this;
    self.chart = [];
    self.dataTable = new google.visualization.DataTable();
    self.settings = $.extend({
        colors:['#98D8F4','#E85500','#B3CF2F', '#FEB800', '#FFA1C5', '#D984FF', '#DD9D75'],
        width: 960, height: 600,
    }, options);
    self.add = function(type, element){
        self.chart.push({
            element: $(element),
            o: new google.visualization[type]($(element)[0]),
            draw: function(dataTable, options){
                this.element.html('');
                this.o.draw(dataTable, options);
            }
        });
    };
    self.draw = function(options){
        var settings = $.extend({}, this.settings, options);
        $.each(self.chart, function(i, chart){
            chart.draw(self.dataTable, settings)
        })
    };
    self.parseData = function(labels, legends, data){
        var countRows = data[0].length;
        self.dataTable.addColumn('string', 'Name');
        $.each(legends, function(i, legend){
            self.dataTable.addColumn('number', legend);
        })
        self.dataTable.addRows(countRows);
        $.each(labels, function(i, label){
            self.dataTable.setValue(i, 0, label);
            $.each(data, function(k, entry){
                self.dataTable.setValue(i, k+1, data[k][i]);
            })
        })
        return self.dataTable;
    };
}

你可以简单地传递数据数组构造图(你必须始终解析之前调用Draw方法数据)

var labels = [ "Kaspersky","Symantec","G-Data","Avira" ],
    legends = [ "Antivirensoftware (kostenpflichtig)","Antivirensoftware (kostenlos)","Internetsecurity (kostenpflichtig)","Internetsecurity (kostenlos)","Sonstiges, keine Angabe","Beta-Test KIS 2010", "Something Else" ],
    data = [ [46,4,7,33],[3,1,2,38],[42,12,14,7],[2,0,1,1],[43,8,14,18],[4,3,0,1],[1,2,4,2]];

除此之外脚本是一个有点复杂,您可以轻松地绘制图表。

var charts = new Charts();
charts.parseData(labels, legends, data);
charts.add('ColumnChart', '#column-chart');
charts.add('BarChart', '#bar-chart');
charts.draw({title: 'Antivirus Comparison Chart', titleY:'Points'});

并刷新容易

charts.parseData(otherLabels, otherLegends, otherData);
charts.draw({title: 'Antivirus Comparison Chart with Other Data', titleY:'Points'});

希望这会帮助你:)

哦,别忘了加载库和包括文件准备功能,例如,这里面的脚本

google.load("jquery", "1.3.2");
google.load('visualization', '1', {'packages':['piechart','barchart','columnchart']});
google.setOnLoadCallback(function() {

/* script here */

});


文章来源: Trying to update a google visualization using jquery