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

Dynamic search filters in Google Visualization Charts

本文关键字:动态 搜索 过滤器 可视化 谷歌      更新时间:2023-09-26

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

类似于如何为服务器端填充数据的表添加搜索过滤器,但我想知道是否可以在面板中创建/删除绑定控件。

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: {...}
  });
}

然后在创建所有过滤器后将它们绑定到仪表板。这是针对第一个和重复相同类型的数据工作的。但是,当我在服务器的不同数据上进行操作时,它会失败地说

"一个或多个参与者未能提取()"

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

您不能解除控件的绑定,但您应该能够创建一个数据结构来保存一组控件:

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的一般错误,表示"某个地方出了问题"。