在 Vaadin 中通过 Link 打开弹出窗口

open popup through Link in Vaadin

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

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

_reportTable.getItem(dashboardDataRowId)
.getItemProperty("todo").setValue(link1);

Book of Vaadin - Components - Link 中所述,Link 应仅用于指向外部资源的超链接,因为它只不过是锚点 html 标记的包装器等它不会触发任何服务器端事件。因此,您无法在服务器端做出反应以打开弹出窗口 window 或执行其他一些逻辑。

The Link is a regular HTML hyperlink, that is, an anchor element that is handled natively by the browser. Unlike when clicking a Button, clicking a Link does not cause an event on the server-side.

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

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

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