Vaadin Crud 用户界面。轴未正确排序

Posted

技术标签:

【中文标题】Vaadin Crud 用户界面。轴未正确排序【英文标题】:Vaadin Crud UI. Axes are not sorted correctly 【发布时间】:2022-01-11 17:04:36 【问题描述】:

为什么我的斧头是这样的?我怎样才能正确地对它们进行排序。 我正在使用 Vaadin Crud 组件(不是 Grid)。

Crud<OpvUser> crud = new Crud<>(OpvUser.class, createUserEditor());
crud.getGrid().addItemDoubleClickListener(e -> crud.edit(e.getItem(), Crud.EditMode.EXISTING_ITEM));

UserDataProvider dataProvider = new UserDataProvider();
crud.setDataProvider(dataProvider);
dataProvider.refreshAll();
     .....
crud.getGrid().setSortableColumns();
crud.getGrid().removeColumnByKey("password");
crud.addThemeVariants(CrudVariant.NO_BORDER);
add(crud); 

【问题讨论】:

你的意思是“Liste von Benutzern”还是什么? 【参考方案1】:

我假设您想要更改列的顺序,因为这是从您发布的图片中脱颖而出的一件事。

Crud 组件在内部构建一个 Grid,列自动从您传递给构造函数的 bean 类中存在的属性生成(在您的情况下为OpvUser)。根据 bean 类中属性的定义方式,列的顺序可能不合适。如果要更改列的顺序,可以在网格上调用setColumnOrder。对于您的示例,应该如下所示:

Grid<OpvUser> grid = crud.getGrid();
grid.setColumnOrder(
  // Columns keys are the exact property names of the bean class
  grid.getColumnByKey("id"),
  grid.getColumnByKey("firstName"),
  grid.getColumnByKey("lastName"),
  grid.getColumnByKey("email")
);

完整示例请参见Crud docs,以及Grid API docs

【讨论】:

萨沙,谢谢你帮助我。我以前试过这个,但它不起作用,我得到 NullPointer 或者什么也没发生。我认为问题出在 DataProvider 类中,特别是在 Comparator 比较器(CrudFilter crudFilter) Mthode 中有 SortDirection 函数,我只能在(降序,升序)之间进行选择。你可能无法理解我的意思,因为我不擅长解释。 不幸的是,不清楚是要更改列的顺序,还是要对行进行排序。我的回答是关于改变列的顺序。要以编程方式对网格进行排序,我建议查看 Grid API 文档以了解与排序相关的方法 (vaadin.com/api/platform/22.0.0/com/vaadin/flow/component/grid/…)。如果你得到一个空指针,那么列键可能不正确(我只是从你的截图中做出假设),我建议仔细检查/调试你的列实际上有哪些键。 现在可以使用了,谢谢。是的,我的意思是对列进行排序,它对我来说是这样的: crud.getGrid().setColumns("id", "firstName", "lastName", "email"); crud.getGrid().setColumnOrder(crud.getGrid().getColumns()); 现在问题是我的 Crud Button 消失了。我只能将 Button 与 ItemDoubleClickListener() 一起使用,但我的行旁边的按钮图标消失了。感谢您的帮助,如果您能再次使用 Crud 按钮帮助我,那就太好了 那是因为您使用setColumns 调用删除了编辑列。请查看此示例以了解如何在 CRUD 中设置列​​:github.com/vaadin/docs/blob/latest/src/main/java/com/vaadin/…

以上是关于Vaadin Crud 用户界面。轴未正确排序的主要内容,如果未能解决你的问题,请参考以下文章

Vaadin binder 写入继承的抽象类的实例

pyqtgraph 轴未正确显示

IOS 图表 Y 轴未正确对齐 - 图表 Cocoa Pod

Vaadin 多用户会话管理

Vaadin4Spring 的 ManagedSecurity:如何更新用户列表?

如何在 Vaadin 应用程序中使用单点登录