Фильтр категорий Google Charts с использованием SQL Server

Я пытаюсь создать выпадающий фильтр, который позволит фильтровать диаграммы. Мой веб-метод работает (я проверил его с помощью диаграммы), но мой ajax не возвращает ни одной строки в раскрывающемся списке.

Любая помощь действительно ценится

<script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    google.setOnLoadCallback(drawCountryChart);
    google.setOnLoadCallback(drawDivisionChart);

    var dashboard = new google.visualization.Dashboard(
        document.getElementById('Dashboard'));

    function drawCountryChart() {

        $.ajax({
            type: "POST",
            url: "Season.aspx/GetCountry",
            data: '{}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {
                var CountryData = google.visualization.arrayToDataTable(r.d);
                var namePicker = new google.visualization.ControlWrapper({
                    'controlType': 'CategoryFilter',
                    'containerId': 'ddlCountry',
                    'options': {
                        'filterColumnLabel': 'CountryName',
                        'ui': {
                            'labelStacking': 'vertical',
                            'allowTyping': false,
                            'allowMultiple': false
                        }
                    }
                });
    }

1 ответ

Решение

Если вы просто хотите нарисовать фильтр самостоятельно,
необходимо назначить свойство таблицы данных и вызвать draw метод...

var CountryData = google.visualization.arrayToDataTable(r.d);
var namePicker = new google.visualization.ControlWrapper({
    'controlType': 'CategoryFilter',
    'containerId': 'ddlCountry',
    'dataTable': CountryData,  // <-- assign data table
    'options': {
        'filterColumnLabel': 'CountryName',
        'ui': {
            'labelStacking': 'vertical',
            'allowTyping': false,
            'allowMultiple': false
        }
    }
});
namePicker.draw();  // <-- draw control

примечание: рекомендуем не использовать старую библиотеку диаграмм -> jsapi
в соответствии с примечаниями к выпуску...

Версия Google Charts, которая остается доступной через jsapi загрузчик больше не обновляется последовательно. Пожалуйста, используйте новый Gstatic loader.js впредь.

<script src="https://www.gstatic.com/charts/loader.js"></script>

это повлияет только на load а также callback заявления,
на самом деле, callback можно добавить к load заявление прямо...

google.charts.load('current', {
  callback: function () {
    drawCountryChart();
    drawDivisionChart();
  },
  packages:['corechart', 'controls']
});
Другие вопросы по тегам