2011-04-29 105 views
0

我有一个网格的URL列表,我需要的是,当一个网址,用户点击一个新的浏览器窗口用相同的URL打开一个网格内打开URL在新的浏览器窗口

我读了一些线程,但在我的情况下,我相信我的情况有点不同。在我的控制器 我使用下面的代码

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

并且此代码不起作用 – Bera 2011-04-29 19:29:35

回答

2

您可以使用下面的示例中,

Executions.getCurrent().sendRedirect("http://www.google.com", "_blank"); 

或者你可以使用A组件与setHref()方法而不是Toolbarbutton组件。

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); 
相关问题