Google可视化图表中的动态搜索过滤器

时间:2014-04-13 14:42:04

标签: javascript google-visualization

是否可以根据服务器的数据动态创建过滤器?

类似于How to add search filter for Table with server side populated data的内容,但我想知道是否可以在信息中心中创建/删除绑定的控件。

var control = new google.visualization.ControlWrapper({
        chartType: 'StringFilter',
        containerId: 'table_div',
        options: {
             filterColumnIndex: 0
        }
    });

而不是上面的代码,我会有像

这样的东西
for (var i=0; i< data.cols.length; i++) {
  var control = new google.visualization.ControlWrapper({
      chartType: 'StringFilter',
      containerId: data.cols[i].id
      options: {...}
  });
}

然后在创建所有过滤器后将它们绑定到仪表板。这适用于第一个数据和相同类型的重复数据。但是,当我对来自服务器的不同数据进行处理时,却没有说

  

&#34;一个或多个参与者未能绘制()&#34;

所以,我的问题是,可以动态删除和重新创建创建的控件吗?

1 个答案:

答案 0 :(得分:0)

您无法取消绑定控件,但您应该能够创建一个数据结构来保存一组控件:

var controls = [];
for (var i=0; i< data.cols.length; i++) {
    controls.push(new google.visualization.ControlWrapper({
        chartType: 'StringFilter',
        containerId: data.cols[i].id
        options: {...}
    }));
}

dashboard.bind(controls, [chart1, chart2, ...]);

如果您收到"One or more participants failed to draw()"错误,则需要调试代码以找出引发错误的内容,因为这是Dashboard在某处出错的一般错误。