我在网格中有一个网址列表,当用户点击网址时,我需要一个新的浏览器窗口打开并使用相同的网址
我读过一些帖子,但就我而言,我相信我的情况有点不同。在我的控制器中 我正在使用以下代码
UrlListCollection.generateListUrl();
dataGrid.setRowRenderer(new RowRenderer() {
public void render(Row row, Object data) throws Exception {
UrlObj url = (UrlObj) data;
row.getChildren().add(new Label("Some data"));
row.getChildren().add(new Toolbarbutton(url.getUrlApp())); // url.getUrlApp() will be return a link like http://www.google.com
}
});
在我看来(zul)我有
<grid id="dataGrid" width="100%">
<columns>
<column label="Some Data" sort="auto(FIELD_NAME)" width="200px" />
<column label="URL LINK" sort="auto(URL)" width="630px" />
</columns>
</grid>
但是在java中设置事件组件的常用方法可以是:
Toolbarbutton button = new Toolbarbutton(url.getUrlApp()));
button.addEventListener(Events.ON_CLICK, new EventListener() {
public void onEvent(evt) {
// what I put here to open a Link in another web browser window ????
// and I need to be able to open every object value retrieved by url.getUrlApp() ???
}
});
我现在没有必要使我的代码工作..对我来说,在使用RowRenderer方法的网格中应用事件到工具栏按钮的方法很奇怪。我自己也看不到解决方案。
答案 0 :(得分:2)
您可以使用以下示例
Executions.getCurrent().sendRedirect("http://www.google.com", "_blank");
或者您可以将A
组件与setHref()
方法一起使用,而不是Toolbarbutton
组件。
答案 1 :(得分:0)
这对我来说很好,谢谢!
UrlObj url = (UrlObj) data;
Toolbarbutton tb = new Toolbarbutton(url.getUrlApp());
tb.setHref(url.getUrlApp());
tb.setTarget("_blank");
row.getChildren().add(new Label("Some data"));
row.getChildren().add(tb);