【问题标题】:How to use setSortOrderProvider in Grid Vaadin 8?如何在 Grid Vaadin 8 中使用 setSortOrderProvider?
【发布时间】:2018-06-17 20:38:23
【问题描述】:

我正在尝试使用网格组件。我需要定义列的顺序,我正在使用这个项目: https://github.com/vaadin/tutorial/tree/v8-step4

我添加了这段代码:

Column name = grid.addColumn(customer -> customer.getFirstName() + " " + customer.getLastName())
    .setCaption("Name")
    .setSortOrderProvider(direction -> Stream.of(
            new QuerySortOrder("lastName", direction)
            ));

grid.setSortOrder(GridSortOrder.asc(name));

但我没有得到预期的结果,我先按名字排序,然后按姓氏排序,但我需要按姓氏排序的结果。

你有同样的问题吗?你是怎么解决的?

谢谢。

【问题讨论】:

  • 您的 Grid 正在使用内存中的数据提供程序,例如 ListDataProvider?
  • 您好,Steffen,感谢您的提问。我正在使用 setItems: List customers = service.findAll(filterText.getValue()); grid.setItems(客户);
  • 好的,你设置默认排序列了吗?我的意思是,如果您不想单击列标题进行排序,则需要在初始化时在 Grid 上调用 setSortOrder
  • 我尝试添加一个,但无论是否使用 setSortOrder,我都会得到相同的结果:grid.setSortOrder(GridSortOrder.asc(name));
  • 能否提供所有网格代码,包括客户 bean 代码?

标签: grid vaadin vaadin8


【解决方案1】:

我使用 setComparator 的这个实现并且它正在工作。 :)

Column name = grid.addColumn(customer -> customer.getFirstName() + " " + customer.getLastName())
        .setCaption("Name")
        .setComparator(new SerializableComparator<Customer>() {

            @Override
            public int compare(Customer arg0, Customer arg1) {
                return arg0.getLastName().compareTo(arg1.getLastName());
            }
        });

使用 Lambda:

.setComparator((customer0, customer1) -> {
            return customer0.getLastName().compareTo(customer1.getLastName());
        });

还有这个其他选项:

Column name = grid.addColumn(customer -> customer.getFirstName() + " " + customer.getLastName())
        .setCaption("Name")
        .setComparator(grid.getColumn("lastName").getComparator(SortDirection.ASCENDING));

【讨论】:

    【解决方案2】:

    我深入研究了代码,发现您需要调用setComparator 而不是setSortOrderProvider。前者适用于内存数据提供者。不幸的是,这有点令人困惑,并且没有很好的记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多