Передача значений в Javascript из кода за asp.net с помощью Webmethod - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь добавить значения, запрошенные из БД, в гистограмму 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>

Когда я запускаю страницу, она даже не загружается.Как будто веб-метод вообще не вызывается.Очевидно, мне не хватает чего-то, что я не могу идентифицировать.Я также видел решения этого типа , поэтому я попробую это позже.Но было бы неплохо выяснить, почему это еще не работает.

...