java - 为什么此 Vaadin 11.0.0 应用程序中未显示网格?
问题描述
我想在 Vaadin 页面中显示两个选项卡 (Providers
和)。应该包含一个带有一条记录的网格Products
。Providers
我为此编写了以下代码:
import java.util.ArrayList;
import java.util.List;
import com.vaadin.flow.component.Text;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.tabs.Tab;
import com.vaadin.flow.component.tabs.Tabs;
import com.vaadin.flow.router.Route;
@Route("")
public class MainView extends VerticalLayout {
public MainView() {
final Text header = new Text("Header");
add(header);
final Tab productsTab = new Tab("Products");
final Tab providersTab = new Tab("Providers");
final Grid<LoanProvider> providersGrid = new Grid<>();
providersGrid.addColumn(LoanProvider::getName).setHeader("Name");
providersGrid.addColumn(LoanProvider::getRegions).setHeader("Regions");
providersGrid.addColumn(LoanProvider::getUrl).setHeader("URL");
providersGrid.setSizeFull();
providersTab.add(providersGrid);
final Tabs tabs = new Tabs(providersTab, productsTab);
add(tabs);
providersGrid.setItems(getLoanProviders());
}
private List<LoanProvider> getLoanProviders() {
final List<LoanProvider> coll = new ArrayList<>();
final LoanProvider sample = new LoanProvider();
sample.setName("Provider name");
sample.setRegions("Region1");
sample.setUrl("http://www.someserver.com");
coll.add(sample);
return coll;
}
}
public class LoanProvider {
private String name;
private String regions;
private String url;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRegions() {
return regions;
}
public void setRegions(String regions) {
this.regions = regions;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
当我运行应用程序时,我在Products
选项卡中看不到任何数据:
如何更改代码以显示网格内容?
调用setSizeFull
和设置高度没有帮助。
解决方案
Flow 中的选项卡不应包含页面内容,您现在正在做的是将网格添加到选项卡本身(就在Providers文本之后)。
在此页面上有一个示例Tabs with pages
https://vaadin.com/components/vaadin-tabs/java-examples
基本上,您应该将 a 添加SelectedChangeListener
到选项卡组件,并根据单击的选项卡显示或隐藏网格(通过setVisible
或删除它并将其重新添加到父级)。
Vaadin 目录中还有一个插件,它包装了上述示例的类似逻辑 https://vaadin.com/directory/component/paged-tabs
推荐阅读
- autodesk-forge - Autodesk forge 配置器发明者添加新模型授权错误
- discord - 如何让我的不和谐机器人状态每 10 秒更改一次?
- reactjs - 样式对象不是开玩笑的
- nanoframework - nanoFramework - I2C 设备没有响应
- kdb - KDB+ / Q 如何在函数中创建命名空间
- networking - DHCP 服务器会始终给我相同的 IP 吗?
- git - `git log --stat` 但输出组合了任意数量的提交?
- html - 使用文本和伪元素旋转 div?
- c++ - C++ uni 任务显示最远城市的最便宜机票
- c# - 光线投射鼠标位置以在 3D 网格上绘制