我需要在vaadin树网格中显示三个级别。我使用'setItems'方法根据vaadin文档将值设置为树网格。如何将第三个嵌套级别设置为网格。
TreeGrid<Project> treeGrid = new TreeGrid<>();
treeGrid.setItems(getProjects(), Project::getSubProjects);
treeGrid.addColumn(Project::getName).setCaption("Name");
treeGrid.addColumn(Project::getStatus).setCaption("Status");
我已按照vaadin 8.1文档https://vaadin.com/docs/-/part/framework/components/components-treegrid.html
中的代码段进行操作答案 0 :(得分:4)
您有2个选项。假设你有类似的东西:
public class Project {
private List<Project> subProjects;
public List<Project> getSubProjects(){};
}
第一个也是最简单的解决方案是向树提供根项目列表和子项提供程序(检索给定项目的子项目的方法):{ {1}}
或者,如果您确实需要,可以为每个子项列表指定父项,但您可能需要递归执行此操作。来自documentation link you provided:treeGrid.setItems(rootProjects, Project::getSubProjects);
(或data.addItems(newProject, newProject.getChildren());
)
使用第一种方法(来自sscce的被盗)的全功能Vaadin sampler:
treeGrid.getTreeData().addItems(newProject, newProject.getSubProjects())
结果: