I wrote Grid, as shown in example.
public class MainView extends VerticalLayout {
private final UserService userService;
private Label label;
private Grid<UserDto> grid;
public MainView(UserService userService) {
this.userService = userService;
initComponents(userService);
}
private void initComponents(UserService userService) {
initMainGrid(userService);
}
private void initMainGrid(UserService userService) {
grid = new Grid<>(UserDto.class);
grid.setItems(userService.getAll());
grid.addColumn(UserDto::getId).setHeader("ID");
grid.addColumn(UserDto::getUsername).setHeader("Имя пользователя");
grid.addColumn(UserDto::getPassword).setHeader("Пароль");
grid.addColumn(UserDto::getEmail).setHeader("email");
grid.addColumn(UserDto::getPhone).setHeader("Телефон");
grid.addColumn(UserDto::getActive).setHeader("Активен");
add(grid);
}
}
But data duplicates:

As we see, data shows two times.
Please advice, what wrong? How to fix it?
Class object to Grid constructorThis constructor grid = new Grid<>(UserDto.class); will automatically add columns according to setters and getters of UserDto class.
Class object to Grid constructorIf you want to configure columns using addColumn method, you need to instantiate Grid using grid = new Grid<>(); without passing UserDto.class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With