How to add a generated column to Vaadin 8 Grid?

2019-04-07 19:46发布

问题:

Looks like GeneratedPropertyContainer does not exist in Vaadin 8.

How can we add a generated column to Vaadin 8 Grid? I appreciate if you can provide an example.

回答1:

If you pass the bean class to the constructure of Grid then it will add all properties as columns to the grid.

If you want to only have some properties as columns then don't pass the class to the constructor and add your columns manually like this:

grid.addColumn(Address::getStreet);
grid.addColumn(Address::getHouseNumber);
grid.addColumn(Address::getPostalCode);
grid.addCOlumn(Address::getCity);

If you want to add a generated column just add it with addColumn

grid.addColumn(address -> {
  // put your calculations for the column here
  return address.getStreet() + " " + address.getHouseNumber();
});


回答2:

A generated column would work like this:

grid.addColumn(address->address.getStreet()+" "+address.getHouseNumber()).setCaption("Street");