Сетчатый фильтр с несколькими столбцами в SmartGWT

Рассмотрим ListGrid с двумя столбцами: Имя и Фамилия.

Что делать, если я хочу выполнить поиск по обоим столбцам одновременно? Например. дайте мне записи, для которых Имя или Фамилия содержат 'bob'. (Заполняется с помощью одного поля поиска TextItem.)

Он должен вернуться:

Ann, Bobbings
Bob, Doe
Chris, McBob

Возможно ли это с использованием только критериев или расширенных критериев? (Например, grid.setCriteria(mySearchCriteria);)

Или мне придется настраивать setCriteria в ListGrid или filterData в DataSource?


person levivanzele    schedule 19.10.2011    source источник


Ответы (1)


Я сам использовал такую ​​реализацию.

textItem.addChangedHandler(new ChangedHandler() {

  @Override
  public void onChanged(ChangedEvent event) {
    String input = (String) event.getValue();
    AdvancedCriteria criteria = new AdvancedCriteria(OperatorId.OR, new Criterion[]{
      // ICONTAINS = ignores case
      new Criterion("firstName", OperatorId.ICONTAINS, input),
      new Criterion("lastName", OperatorId.ICONTAINS, input)
    });

    listGrid.filterData(criteria);
  }
});
person Kimi    schedule 23.10.2011