Я пытаюсь добавить значения, запрошенные из БД, в гистограмму Google Chart.Поискав в поиске, я попытался создать веб-метод.
Сначала я создал класс:
public class ChartDetails
{
public string value_type { get; set; }
public float threshold { get; set; }
}
Затем веб-метод (еще не подключенный к БД)
[WebMethod]
public static List<ChartDetails> GetChartData()
{
List<ChartDetails> dataList = new List<ChartDetails>();
ChartDetails c1 = new ChartDetails();
c1.threshold = 56;
c1.value_type = "Observed";
ChartDetails c2 = new ChartDetails();
c2.threshold = 33;
c2.value_type = "Forecast";
dataList.Add(c1);
dataList.Add(c2);
return dataList;
}
Мой скрипт добавляется в том же теге формы, что и div с id = "chartdiv":
script type="text/javascript">
$(function () {
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: 'Page.aspx/GetChartData',
data: '{}',
success: function (response) {
drawchart(response.d); // calling method
},
error: function () {
alert("Error loading data! Please try again.");
}
});
})
function drawchart(dataValues) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Type of value');
data.addColumn('float', 'Value');
for (var i = 0; i < dataValues.length; i++)
{
data.addRow([dataValues[i].value_type, dataValues[i].threshold] );
}
var chart = new google.visualization.ColumnChart(document.getElementById('chartdiv'));
chart.draw(data,
{
title: "Show Google Chart in Asp.net",
position: "top",
fontsize: "14px",
chartArea: { width: '50%' },
});
}
</script>
Когда я запускаю страницу, она даже не загружается.Как будто веб-метод вообще не вызывается.Очевидно, мне не хватает чего-то, что я не могу идентифицировать.Я также видел решения этого типа , поэтому я попробую это позже.Но было бы неплохо выяснить, почему это еще не работает.