SmartGWT中的多列网格过滤器

时间:2011-10-19 13:43:25

标签: java gwt smartgwt

考虑一个包含两列的ListGrid:名字和姓氏。

如果我想一次搜索两个列怎么办?例如。给我一个名字姓氏包含' bob '的记录。 (使用单个TextItem搜索字段填写。)

它应该回归:

Ann, Bobbings
Bob, Doe
Chris, McBob

仅使用Criteria或AdvancedCriteria是否可以实现? (例如grid.setCriteria(mySearchCriteria);)

或者我是否必须自定义ListGrid中的setCriteria或DataSource中的filterData?

1 个答案:

答案 0 :(得分: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);
  }
});