I was reading this http://blog.platformular.com/2012/03/20/load-google-chart-by-ajax-using-asp-net-mvc-and-jquery/ and this https://google-developers.appspot.com/chart/interactive/docs/gallery/areachart.
How can I create an array like this in VB.NET?
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
]);
I need to create it from a query, not from static data like in the article I linked to above:
Dim water = db.Tbl_Hydrations.Where(Function(x) x.Hyd_Create_Date >= firstDay And x.Hyd_Create_Date <= lastDay).ToList
If I can create the array, I can display the data in the chart. Thanks for your help.
Edit:
I tried this:
Function WeightAreaChartData() As JsonResult
Dim data = New Dictionary(Of String, Object)
data.Add("1", New With {.Name = "China", .Value = "11"})
data.Add("2", New With {.Name = "China", .Value = "11"})
Return Json(data, JsonRequestBehavior.AllowGet)
End Function
But, Google Charts says, “No Data.”
The JSON it returns is:
{"1":{"Name":"China","Value":"11"},"2":{"Name":"China","Value":"11"}}
Final Edit:
This is the action I’m using:
<EmployeeAuthorize()>
Function WeightAreaChartData() As JsonResult
Dim myData = db.Tbl_Weights.Where(Function(x) x.Weight_Employee_ID).OrderBy(Function(x) x.Weight_Create_Date)
Dim data = New List(Of Object)
data.Add(New Object() {"Date", "Your Weight"})
For Each i As Tbl_Weight In myData
data.Add(New Object() {DateTime.Parse(i.Weight_Create_Date).Day, i.Weight_Amount})
Next
Return Json(data, JsonRequestBehavior.AllowGet)
End Function
You can create this array:
By using this JsonResult
There’s more to your question than this, I know. But this should point you in the right direction. Feel free to comment for more advice.
EDIT
Taking the example from you original post
You can rewrite it to use the JsonResult (change the /Controller/WeightAreaChartData to point to your JsonResult route)