我写了Grid,如图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);
}
}
但是数据重复:
正如我们所见,数据显示了两次。
请指教,哪里错了?如何解决?
最佳答案
通过Class
反对Grid
构造函数
这个构造函数grid = new Grid<>(UserDto.class);
将根据 UserDto
的 setter 和 getter 自动添加列类(class)。
未通过 Class
反对Grid
构造函数
如果您想使用 addColumn
配置列方法,需要实例化Grid
使用grid = new Grid<>();
没有通过UserDto.class
。
关于java - Vaadin:网格重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59569011/