我想在Vaadin 11的网格中实现自动换行。据我了解,您需要为此做两件事:
我使用以下代码进行了第一步:
productsGrid.addColumn(TemplateRenderer.of( “[[项目名称]]”) .withProperty(“ name”,Product :: getName)) .setHeader(“ Name”);
现在我需要增加行高。
也许可以使用productsGrid.getElement().getStyle().set(...)
来做到这一点,但是我不确定如何使用它。
如何增加Vaadin 11网格中的行的高度(即使行更高,以便在单元格中显示长文本)?
更新1:
我正在使用以下代码创建网格:
private Grid<Product> createProductsGrid() {
final Grid<Product> productsGrid = new Grid<Product>();
productsGrid.setItems(Arrays.asList(AltFondUtilities.INSTANCE));
productsGrid.addColumn(TemplateRenderer.<Product>of(
"<div style='word-wrap: break-word;'>[[item.name]]</div>")
.withProperty("name", Product::getName))
.setHeader("Название");
productsGrid.addColumn(Product::getInterestRatePercentPerAnnum)
.setHeader("Ставка");
productsGrid.addColumn(Product::getProvider).setHeader("Организация");
productsGrid.setHeightByRows(true);
return productsGrid;
}
结果:即使name
列的样式正确,自动换行也不起作用。
答案 0 :(得分:1)
在Vaadin 11的Java Examples of Grid中,似乎可以通过使用setHeightByRows
Grid<Person> grid = new Grid<>();
// When using heightByRows, all items are fetched and
// Grid uses all the space needed to render everything.
grid.setHeightByRows(true);
答案 1 :(得分:0)
行高的设置取决于所使用的主题。如果用户界面使用LUMO主题,则可以通过以下技巧更改表格的行高。
Grid<Object> grid = new Grid<>();
grid.getStyle().set("--lumo-line-height-xs", "0");
grid.getStyle().set("--lumo-line-height-s", "0");
grid.getStyle().set("--lumo-size-xs", "0");
grid.getStyle().set("--lumo-size-s", "0");
grid.getStyle().set("--lumo-space-xs", "0");
grid.getStyle().set("--lumo-space-s", "0");
grid.getStyle().set("margin-top", "20px");
grid.getStyle().set("line-height", "20px");