2011-04-29 8 views
0

나는 그리드에서 URL 목록을, 그리고 같은 URL을 사용하여 새 브라우저 창을 열고 URL에 사용자 클릭이URL 열기

나는 몇 가지를 읽을 때 필요 내 경우에는 내 상황이 조금 다르다고 나는 믿는다. 내 컨트롤러 을 나는 내보기 (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> 

해야하지만 이벤트를 설정하는 일반적인 방법은 자바의 구성 요소가 될 수 있습니다에서 다음 코드

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 
     } 
    }); 

을 사용하고 있습니다 :

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

답변

2

,

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

또는 당신이 setHref() 방법 대신 Toolbarbutton 구성 요소로 A 구성 요소를 사용할 수 있습니다.

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); 
관련 문제