自定义复选框类别选择器

Custom Checkbox Category Selector

我想按不同的类别过滤我的数据数组。它正在工作,但它应该选择多个类别的行。如果选中多个复选框。我如何实现此代码?

这是我的代码:

check_cells = function() {
  var values = [];
  if (document.getElementById("checkbox_pouch").checked == true) {
    values.push('pouch');
  }
  if (document.getElementById("checkbox_18650").checked == true) {
    values.push('18650');
  }
  if (document.getElementById("checkbox_21700").checked == true) {
    values.push('21700');
  }
  if (document.getElementById("checkbox_pouch").checked == false && document.getElementById("checkbox_18650").checked == false && document.getElementById("checkbox_21700").checked == false) {
    values.push('empty');
  }
  if (values.length > 0) {
    view.setRows(data.getFilteredRows([{
      column:2,
      test: function (value) {
        return (values.indexOf(value) > -1);
      }
      }]));
    }
  dashboard.draw(view, drawOptions);
  }
  else {
  view.setRows(data.getFilteredRows([{column:2}]));
  dashboard.draw(view);
  }
  }

var view = new google.visualization.DataView(data);

      var drawOptions = {
        showRowNumber: false,
        allowHtml: true,    
      };


      // Inititial Draw of the dashboard.
      dashboard.draw(view, drawOptions);

过滤多个值时,
您需要将它们组合成一个过滤器设置。
数据视图不会让您在同一列上有多个过滤器。

在这种情况下,您可以使用 test 回调函数,而不是 value 键。

此处,数组用于收集值,
以及过滤列的 test 回调...

check_pouch = function() {
  var values = [];
  if (document.getElementById("checkbox_pouch").checked == true) {
    values.push('pouch');
  }
  if (document.getElementById("checkbox_18650").checked == true) {
    values.push('18650');
  }
  if (values.length > 0) {
    view.setRows(data.getFilteredRows([{
      column:2,
      test: function (value) {
        return (values.indexOf(value) > -1);
      }
    }]));
  }
  dashboard.draw(view);
}