【问题标题】:Google visualization: how to provide user search on a DataTable object?Google 可视化:如何在 DataTable 对象上提供用户搜索?
【发布时间】:2012-02-08 02:13:50
【问题描述】:

我有一个 DataTable 对象,其中包含表格可视化的所有数据。

我想为表的用户提供搜索工具,根据搜索查询过滤表中的行,然后使用匹配的行更新可视化。

DataTable 提供了getFilteredRows 方法,但这不够灵活(例如,每列的AND 条件根本不起作用)。

我有哪些选择?所有数据都已经存在于客户端,所以我应该能够使用 JS 代码来操作它。是否有库功能可以让我这样做?

【问题讨论】:

    标签: javascript google-visualization jsapi


    【解决方案1】:

    目前看来,答案是否定的。我想出了这个非常低效的功能作为权宜之计:

      function search(query, table) {
    
          if(query == '') {
              return table;
          }
    
          var newTable = table.clone();
              newTable.removeRows(0, table.getNumberOfRows());
          var keepRows = [];
          for(i = 0; i < table.getNumberOfRows(); i++) {
              for (j = 0; j < table.getNumberOfColumns(); j++) {
                    if(table.getValue(i, j).toLowerCase().match(query.toLowerCase())) {
                        keepRows.push(i);
                        break;
                    }
            }
          }
    
          for(r = 0; r < keepRows.length; r++) {
                var row = []
              for(c = 0; c < table.getNumberOfColumns(); c++ ) {
                  row.push(table.getValue(keepRows[r], c));
              }
    
              newTable.addRow(row);
          }
    
          return newTable;
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      相关资源
      最近更新 更多