2011-11-29 76 views
1

我目前正在通过谷歌可视化创建谷歌图表,并且希望能够通过单击按钮刷新/更新此图表。我已经尝试了很多不同的方法来做到这一点,但没有一个可行,所以我正在寻找任何人都可以提出的建议。我目前的平台是ASP.net(用C#),谷歌的东西是用javascript/jquery(显然)编写的。谢谢!立即刷新Google可视化

+0

想更新而不刷新整个页面? – jrb

+0

是的,这将是最佳的。 – mrK

+0

那么updatepanel如何呢? – jrb

回答

1

Gviz可以选择使用JSON数据填充图表,因此,您可以使用jquery轻松完成此操作,只需调用您的服务器以获取一组新数据,让它返回JSON,然后将其传递给一个绘制图表的函数。

你的jQuery/JavaScript的西港岛线是这个样子:

function drawMyChart(data) { 
     // stuff to draw chart using the contents of data 
     // data should be Gviz Data Table in JSON format 
     // your server needs to output this 
     var dt = new google.visualization.DataTable(data) 
     // rest of your stuff, just like standard gviz 
    } 

    function makeAjaxCall() { 
     $.ajax({ 
      url: '/path/to/data/json', 
      sucess: drawMyChart(a), 
      dataType: 'json' // this is important, have it interpreted as json 
     }); 
    } 
// html somewhere 
<input type='button' onclick='makeAjaxCall()'>Go</input> 

关于正确格式化你的JSON响应,有一对夫妇图书馆在那里,帮助你,虽然我不知道任何东西特别是在你提到的语言中。例如,以python为例。

如果你挣扎,你可以转储所有条目的数组如下:

[[name, age],[john, 25],[paul, 20]] 

,并使用google.visualization.arrayToDataTable当它到达从您的服务器为JSON回解释。

希望有所帮助。