Vaadin 如何在CRUD网格中定义列?

Vaadin 如何在CRUD网格中定义列?,vaadin,crud,Vaadin,Crud,我需要定义哪些列将出现,以及它们在CRUD网格中的顺序 如果我使用crud.getGrid().setColumns(…),则编辑列不会出现。如果我在列表中包括vaadin crud edit列,那么我会得到一个异常,因为该列不存在(但我在那里看到了!) 如果我删除了不需要的列(不管怎么说,麻烦多了!),我仍然无法更改列顺序 有什么方法可以解决这个问题吗?要在Crud中向网格添加编辑列,有一个辅助方法Crud。addEditColumn(网格)您还可以使用此方法将编辑列添加为第一列或最后一列

我需要定义哪些列将出现,以及它们在CRUD网格中的顺序

  • 如果我使用
    crud.getGrid().setColumns(…)
    ,则编辑列不会出现。如果我在列表中包括
    vaadin crud edit列
    ,那么我会得到一个异常,因为该列不存在(但我在那里看到了!)

  • 如果我删除了不需要的列(不管怎么说,麻烦多了!),我仍然无法更改列顺序


  • 有什么方法可以解决这个问题吗?

    要在Crud中向网格添加编辑列,有一个辅助方法
    Crud。addEditColumn(网格)
    您还可以使用此方法将编辑列添加为第一列或最后一列,具体取决于您如何配置网格

    private void customGrid() {
        Grid<Person> grid = new Grid<>(Person.class);
        Crud<Person> crud = new Crud<>(Person.class, grid, createPersonEditor());
    
        PersonDataProvider dataProvider = new PersonDataProvider();
        crud.setDataProvider(dataProvider);
    
        grid.setColumns("firstName","lastName");
        Crud.addEditColumn(grid);
    
        add(crud);
    }
    
    private void customGrid(){
    网格网格=新网格(Person.class);
    Crud Crud=新Crud(Person.class、grid、CreatePersonEdit());
    PersonDataProvider dataProvider=新的PersonDataProvider();
    crud.setDataProvider(数据提供者);
    grid.setColumns(“firstName”、“lastName”);
    积垢.增液柱(网格);
    添加(积垢);
    }
    

    首先删除所有,然后添加所需的?否则,您必须显示代码和您使用的Vaadin版本。您使用的是Vaadin的增强Crud组件、Crud UI附加组件还是其他?是的,我使用的是增强Crud,不删除所有列不起作用,因为它同时删除了Vaadin Crud编辑列(你没有办法过滤掉它,因为它有一个特殊的处理方式)太好了!谢谢。编译,执行没有异常,但是所有的单元格都是空的。这很奇怪,对我来说很有效,看图片眼,这种方式有效,我重用提供的网格,而不是将其作为参数传递给构造函数。非常感谢。