Фильтр категорий 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
загрузчик больше не обновляется последовательно. Пожалуйста, используйте новый Gstaticloader.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']
});