通过Vaadin中的链接打开弹出窗口

通过Vaadin中的链接打开弹出窗口,vaadin,Vaadin,我在应用程序中使用了Vaadin框架。我想用Vaadin链接打开一个弹出屏幕。我知道通过按钮打开弹出窗口,但我需要通过链接打开弹出窗口。有人能帮忙吗,这是我的密码: Link link1 = new Link(String.valueOf(rs.getInt(1)), new ExternalResource("#")); _reportTable.getItem(dashboardDataRowId) .getItemProperty("todo").setValue(link1); 如

我在应用程序中使用了Vaadin框架。我想用Vaadin链接打开一个弹出屏幕。我知道通过按钮打开弹出窗口,但我需要通过链接打开弹出窗口。有人能帮忙吗,这是我的密码:

Link link1 = new Link(String.valueOf(rs.getInt(1)), new ExternalResource("#")); 

_reportTable.getItem(dashboardDataRowId)
.getItemProperty("todo").setValue(link1);
如中所述,链接只应用于指向外部资源的超链接,因为它只不过是锚html标记的包装器,因此不会触发任何服务器端事件。因此,您无法在服务器端响应以打开弹出窗口或执行其他逻辑

该链接是一个常规的HTML超链接,即锚定 由浏览器本机处理的元素。与单击时不同 单击链接的按钮不会在服务器端引发事件

您真正想要的是将vaadin按钮样式设置为超链接。您可以通过创建一个常规按钮(支持服务器端事件并可以打开弹出窗口)然后添加适当的样式来实现

Button linkButton = new Button();
linkButton .setStyleName(BaseTheme.BUTTON_LINK);

始终确保调用addStyleName()而不是setStyleName(),因为它只会将您的新样式添加到已存在的其他样式列表中,并且不会用您唯一的新样式覆盖该列表。

为什么?因为视觉效果?大多数主题也有一个按钮样式,看起来像一个链接。