【问题标题】:Google Charts Category Filter using SQL Server使用 SQL Server 的 Google 图表类别过滤器
【发布时间】:2017-07-20 13:29:50
【问题描述】:

我正在尝试创建一个允许过滤图表的下拉过滤器。我的 webmethod 正在工作(我已经使用图表对其进行了测试),但我的 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
                        }
                    }
                });
    }

【问题讨论】:

    标签: asp.net sql-server google-visualization


    【解决方案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
    根据release notes...

    通过jsapi 加载程序仍然可用的 Google 图表版本不再持续更新。从现在开始请使用新的 gstatic loader.js。

    &lt;script src="https://www.gstatic.com/charts/loader.js"&gt;&lt;/script&gt;

    这只会影响load 和callback 语句,
    其实callback可以直接加到load语句中……

    google.charts.load('current', {
      callback: function () {
        drawCountryChart();
        drawDivisionChart();
      },
      packages:['corechart', 'controls']
    });
    

    【讨论】:

    • 在使用ChartWrapper或ControlWrapper时还需要加载'controls'包,见上面load声明...
    • 感谢白帽。手指交叉这些更改将解决它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多