Check out
http://bortosky-google-visualization.googlecode.com


On Apr 2, 1:28 am, Doomsday <[email protected]> wrote:
> Hi Ned,
> I think your JSON is incorrect, you 
> need:http://code.google.com/apis/visualization/documentation/reference.htm...
> look under
> "Format of the data Parameter Object"
>
> Assuming that your web service is returning a string you will not be
> able to pass this directly to the google dataTable as it is expecting
> a object not a string.
>
> var strResult = result; // strResult = "{ cols:[], rows:[] }"
> var JSONObject = eval(strResult ); // convert the string to a object
> var data = new google.visualization.DataTable(JSONObject);
>
> I am about to do something very similar to what you are doing. I am
> interested in how you are converting your c# DataTable or DataSet to
> the format that google requires. You will need to manually iterate the
> table to build a JSON string. The .Net JavascriptSerialization will
> not reproduce the format that google expects. Can you post your .NET
> to JSON conversion code I'd love to see your implementation.
>
> In my situation I will have multiple visualizations on the page. So it
> would be cool to call a webservice that returns a DataSet of multiple
> DataTables to reduce server requests:
>
> So:
> var strResult = result; // strResult = "{ table1:{ cols:[], rows:[] },
> table2:{ cols:[], rows:[] } }"
> var JSONObject = eval(strResult); // convert the string to a object
> var data1 = new google.visualization.DataTable(JSONObject.table1);
> var data1 = new google.visualization.DataTable(JSONObject.table2);
>
> On Apr 2, 3:26 am, Ned <[email protected]> wrote:
>
> > The dynamic page is an interesting idea.  I also thought of outputting
> > to a non-visible Gridview, and then having the javascript try to
> > scrape the resulting HTML table in the code.  After doing a bit more
> > javascript digging though, I decided to use ASP.NET AJAX to create a
> > WebService that utilizes the [ScriptService] and [ScriptMethod]
> > attribute tags.  This lets me access the webservice via the javascript
> > directly:
>
> >     <asp:ScriptManager ID="ScriptManager" runat="server">
> >                 <Services>
> >                         <asp:ServiceReference Path="~/ReportWS.asmx" />
> >                 </Services>
> >         </asp:ScriptManager>
>
> >     <!--Load the AJAX API-->
> >     <script type="text/javascript" src="http://www.google.com/jsapi";></
> > script>
> >     <script type="text/javascript">
> >       google.load("visualization", "1", {packages:["piechart"]});
> >     </script>
> >     <script type="text/javascript">
> >     function findHelloService()
> >     {
> >             ReportWS.GetReport(function(result) {
> >                 $get("WSresult").innerHTML = result;
>
> >                  var JSONObject = result;
> >                  var data = new google.visualization.DataTable(JSONObject);
>
> >                   var chart = new google.visualization.PieChart
> > (document.getElementById('chart_div'));
> >                  chart.draw(data, {width: 400, height: 240, is3D:
> > true, title: 'My Daily Activities'});
> >             });
> >     }
>
> > Now I'm faced with a new problem though.  How do I get my JSON string
> > into an object that Google recognizes?
>
> > My JSON String looks like this:
>
> > {"Table" : [{"AccountName" : "ClientA","Group" : "GroupA","Metric" :
> > "348"},{"AccountName" : "ClientA","Group" : "GroupB","Metric" :
> > "25502"},{"AccountName" : "ClientA","Group" : "GroupC","Metric" :
> > "2228"},{"AccountName" : "ClientA","Group" : "GroupC","Impressions" :
> > "0"}]};
>
> > The Javascript is giving me the error:
> > Line: 93
> > Char: 17
> > Error: 'this.A' is null or not an object
>
> > ... so I think something inside the Google Javascript code is failing
> > but I'm not entirely sure why.  Is my JSON string invalid compared to
> > what Google is expecting?
>
> > Thanks,
> > -Ned
>
> > On Apr 1, 3:18 am, VizBoy <[email protected]> wrote:
>
> > > Hi,
>
> > > In general there are two ways you can go about getting the data from your
> > > server to the visualizations on the client-side.
>
> > > 1. Generate the html page dynamically (Asp .NET does this well) and put in
> > > the html some static javascript containing your data table's json. For
> > > instance, you have a urlwww.myserver.com/mypage.aspxwhichgeneratesan
> > > html page containing, among other things this:
> > > <script>
> > > var json = {cols: [...], rows: [...]};
> > > var dataTable = new google.visualization.DataTable(json);
> > > ...
> > > </script>
>
> > > 2. Become a data source. You need to conform to the protocol described 
> > > here:http://code.google.com/apis/visualization/documentation/dev/implement...
> > > Then you need to expose a url (can be a web service, i believe, if a web
> > > service doesn't have problems with returning a simple text string without
> > > any special headers it adds itself).
> > > Say you exposewww.myserver.com/myservice
> > > And then in the client side (this can be a static html file, or a dynamic
> > > one created by Asp .NET, doesn't matter) you can have something like this:
> > > <script>
> > > var query = new 
> > > google.visualization.Query('http://www.myserver.com/myservice');
> > > query.send(handleResponse);
> > > function handleResponse(response) {
> > > ...}
>
> > > </script>
> > > See further documentation of sending requests via the Query object 
> > > here:http://code.google.com/apis/visualization/documentation/queries.html
>
> > > To choose between 1 and 2, the main thing that should guide you is whether
> > > you write all your own pages (choose 1) or whether you will want your data
> > > to be accessed by pages written by someone else, or by Google 
> > > Visualization
> > > Gadgets, etc (choose 2).
>
> > > Hope this helps.
>
> > > - VizBoy.
>
> > > On Wed, Apr 1, 2009 at 12:13 AM, Ned <[email protected]> wrote:
>
> > > > Hello,
>
> > > > I have a Web Application Report Engine written in C# which will take
> > > > user parameters, run a SQL query to get Report Data, and then make
> > > > some modifications to the DataSet before finally outputting it to the
> > > > screen as an ASP GridView.  I've been experimenting with the Google
> > > > Visualization API, and thought I would try using the API as a graphing
> > > > engine for all my data.  My question is, what is the best way to
> > > > access the data generated by the C# code inside the javascript for the
> > > > Google Vis. API?
>
> > > > I was experimenting with writing a C# WebService that would output a
> > > > JSON formatted string which represents the C# DataSet.  The WebService
> > > > is correctly outputting the JSON string, but how do I call the
> > > > WebService using the google javascript?
>
> > > > Additionally, is there a better way of going about this rather than
> > > > the creation of a WebService to output data?
>
> > > > Thanks!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to