首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅逐页地对CellTable进行排序

仅逐页地对CellTable进行排序
EN

Stack Overflow用户
提问于 2013-10-11 06:11:40
回答 1查看 138关注 0票数 0

GWT只对CellTable列进行逐页排序,对于每个页面,我必须单击列标题进行排序。如何在单头单击中排序整个数据。这是我的密码

代码语言:javascript
复制
   dataProvider = new ListDataProvider<List<NamePair>>();
   dataProvider.addDataDisplay(dgrid);
   List<List<NamePair>> list = dataProvider.getList();

   for (List<NamePair> contact : test) {
      dataProvider.setList(test);
      list.add(contact);
   }


   ListHandler<List<NamePair>> columnSortHandler = new ListHandler<List<NamePair>>(dataProvider.getList());
   System.out.println("Column count->"+dgrid.getColumnCount());

   for(int j=0 ; j<dgrid.getColumnCount();j++){             
        final int val = j;
        columnSortHandler.setComparator(dgrid.getColumn(val), new Comparator<List<NamePair>>() {

        public int compare(List<NamePair> o1, List<NamePair> o2) {
          if (o1 == o2) {
            return 0;
         }

         // Compare the column.
         if (o1 != null) {
            int index = val;
            return (o2 != null) ? o1.get(index-2).compareTo(o2.get(index-2)) : 1;
         }
         return -1;
        }
    });
}

dgrid.addColumnSortHandler(columnSortHandler);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-12 12:24:01

我建议您重写ListHandler,重写并调用super.onColumnSort(ColumnSortEvent)来调试onColumnSort(ColumnSortEvent)方法,您将很快了解正在发生的事情。

该方法的源代码非常直接。

代码语言:javascript
复制
public void onColumnSort(ColumnSortEvent event) {
  // Get the sorted column.
  Column<?, ?> column = event.getColumn();
  if (column == null) {
    return;
  }

  // Get the comparator.
  final Comparator<T> comparator = comparators.get(column);
  if (comparator == null) {
    return;
  }

  // Sort using the comparator.
  if (event.isSortAscending()) {
    Collections.sort(list, comparator);
  } else {
    Collections.sort(list, new Comparator<T>() {
      public int compare(T o1, T o2) {
        return -comparator.compare(o1, o2);
      }
    });
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19311382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档