根据类别选择器控件切换Google可视化表中的列可见性

用户3102065

这是一个可以根据类别选择器控件隐藏/显示图表示例我在一个类似的方法在那里我试图隐藏工作/显示来自谷歌的可视化表中的列中给出这个小提琴

google.visualization.events.addListener(dashboard, 'ready', function() {
          var countrySelectedValues = countryPicker.getState()['selectedValues'];
          var regionSelectedValues = regionPicker.getState()['selectedValues'];          
          if (countrySelectedValues.length == 0 || regionSelectedValues.length == 0) {
            document.getElementById('chart2').hideColumns([1]);
          } else {
            document.getElementById('chart2').hideColumns([]);       
          }
        });
      }
向往

DOM元素没有hideColumns方法,这就是为什么您收到这些错误消息的原因。这是无效的:

document.getElementById('chart2').hideColumns([1]);

如果我正确理解了您的意图,那么如果没有选择任何值,则要隐藏“国家”和“地区”列。为此,您需要为每个控件连接一个“ statechange”事件处理程序,并view根据控件的状态适当地设置表的位置,然后重新绘制表:

function drawVisualization() {
    // Prepare the data
    var data = google.visualization.arrayToDataTable([
        ['Country', 'Region/State', 'City', 'Population'],
        ['USA', 'California', 'San Francisco', 776733],
        ['USA', 'California', 'Los Angeles', 3694820],
        ['USA', 'California', 'Mountain View', 70708],
        ['USA', 'New York', 'New York', 8175173],
        ['USA', 'New York', 'Albany', 857592],
        ['France', 'Ile-de-France', 'Paris', 2193031],
        ['France', 'Ile-de-France', 'Orly', 21372],
        ['France', 'Provence', 'Marseille', 852395],
        ['France', 'Provence', 'Nice', 348556]
    ]); 

    // Define category pickers for 'Country', 'Region/State'
    var countryPicker = new google.visualization.ControlWrapper({
        'controlType': 'CategoryFilter',
        'containerId': 'control1',
        'options': {
            'filterColumnLabel': 'Country',
            'ui': {
                'labelStacking': 'vertical',
                'allowTyping': false,
                'allowMultiple': false    
            }
        }
    });

    var regionPicker = new google.visualization.ControlWrapper({
        'controlType': 'CategoryFilter',
        'containerId': 'control2',
        'options': {
            'filterColumnLabel': 'Region/State',
            'ui': {
                'labelStacking': 'vertical',
                'allowTyping': false,
                'allowMultiple': false    
            }
        }
    });

    // Define a bar chart to show 'Population' data.
    // The bar chart will show _only_ if the user has choosen a value

    // Define a table.
    // The table shows whatever is selected by the category pickers. It's here
    // just for reference and debugging.
    var table = new google.visualization.ChartWrapper({
        'chartType': 'Table',
        'containerId': 'chart2',
        'options': {
            'width': '300px'
        }
    });

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

    function showHideColumns () {
        var selectedCountries = countryPicker.getState().selectedValues;
        var selectedRegions = regionPicker.getState().selectedValues;
        var columns = [2, 3];
        if (selectedRegions.length) {
            columns.splice(0, 0, 1);
        }
        if (selectedCountries.length) {
            columns.splice(0, 0, 0);
        }
        table.setView({columns: columns});
        table.draw();
    }
    google.visualization.events.addOneTimeListener(dashboard, 'ready', showHideColumns);
    google.visualization.events.addListener(countryPicker, 'statechange', showHideColumns);
    google.visualization.events.addListener(regionPicker, 'statechange', showHideColumns);

    // Configure the controls so that:
    // - the 'Country' selection drives the 'Region' one,
    // - both the 'Country' and 'Region' selection drive the barchart
    // - both the 'Country' and 'Region' selection drive the table
    dashboard.bind([countryPicker], [regionPicker]);
    dashboard.bind([regionPicker], [table]);
    // Draw the dashboard
    dashboard.draw(data);
}

google.setOnLoadCallback(drawVisualization);
google.load('visualization', '1.0', {packages: ['controls']});

此处的示例:http : //jsfiddle.net/asgallant/x3JT4/1/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将切换按钮的选中状态绑定到用户控件的可见性

来自分类Dev

按类别切换可见性

来自分类Dev

使用JQuery切换div可见性

来自分类Dev

在onClick上切换布局的可见性

来自分类Dev

Mapbox切换多层的可见性

来自分类Dev

如何根据元素的文本内容在AngularJS中切换可见性?

来自分类Dev

切换类别或可见性

来自分类Dev

如何切换Matplotlib图形的可见性?

来自分类Dev

数据表切换列可见性延迟/影响

来自分类Dev

切换当前元素的可见性

来自分类Dev

如何切换密码可见性?

来自分类Dev

切换Tkinter窗口可见性

来自分类Dev

切换可见性多个divs javascript

来自分类Dev

按类别切换可见性

来自分类Dev

使用onclick切换div可见性

来自分类Dev

切换JComponent Swing的可见性

来自分类Dev

Mapbox切换多层的可见性

来自分类Dev

可见性切换

来自分类Dev

如何根据下拉值切换多个元素的可见性

来自分类Dev

Javascript不会切换div可见性

来自分类Dev

切换段落的可见性

来自分类Dev

jQuery切换子级可见性

来自分类Dev

PySide如何切换QTextBrowser的可见性

来自分类Dev

使用JavaScript切换元素的可见性

来自分类Dev

切换类别和可见性,显示

来自分类Dev

扩展器控件中切换按钮的可见性无法正常工作

来自分类Dev

如何根据请求切换小部件的可见性

来自分类Dev

选择和取消选择 certian 单选按钮时切换元素可见性

来自分类Dev

使用 CSS: lang() 选择器切换 div 可见性