Визуализация Google: как обеспечить поиск пользователя по объекту DataTable? - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть объект DataTable, который содержит все данные для визуализации таблицы.

Я хочу предоставить средство поиска для пользователей таблицы, отфильтровывая строки из таблицы на основе поискового запроса, изатем обновите визуализацию соответствующими строками.

DataTable предоставляет метод getFilteredRows, но он не будет достаточно гибким (например, условия AND для каждого столбца просто не будут работать).

Какие у меня варианты?Все данные уже существуют на стороне клиента, поэтому я должен иметь возможность манипулировать ими с помощью кода JS.Есть ли функциональные возможности библиотеки, которые позволят мне сделать это?

1 Ответ

0 голосов
/ 13 февраля 2012

Ответ, на данный момент, кажется, нет.Я придумал эту ужасно-неэффективную функцию как стоп-лосс:

  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;
  }
...