2011-08-03 3 views
0

gwt 2.3을 사용하고 있습니다. UI 바인더를 사용하고 있습니다. UIBinder를 사용하여 그리드를 만들고 싶습니다. 이를 위해이 코드를 작성했습니다. 내 데이터 내가 UIbinder를 사용하여 그리드를 만들려면 데이터에 따라 서버 측 &에서 오는 경우 UIBinder를 다이나믹하게 사용하는 방법?

<g:Grid ui:field='mygrid' addStyleNames='{style.panel}' 
      cellSpacing='10'> 
      <g:row> 
       <g:customCell> 
        <g:Label text="11" styleName="{style.label}" /> 
       </g:customCell> 
       <g:customCell> 
        <g:Label text="22" styleName="{style.label}" /> 
       </g:customCell> 
      </g:row> 
      <g:row> 
       <g:customCell> 
        <g:Label text="33" styleName="{style.label}" /> 
       </g:customCell> 
       <g:customCell> 
        <g:Label text="44" styleName="{style.label}" /> 
       </g:customCell> 
      </g:row> 
     </g:Grid> 

지금 여기 그리드의 내 데이터는 경우 static.Now입니다. 어떻게 이것이 가능합니까 ??

또 하나의 경우. 형식이 있습니다. 컨트롤 수는 데이터베이스에서옵니다. 그래서 UIBider가이 폼을 생성하는 것을 어떻게 지원할 수 있습니까? 컨트롤의 수는 매번 바뀔 수 있습니다.

그래서 런타임 데이터에 따라 UIBinder를 사용하여 UIBinder를 사용할 수 있습니다.

어떤 제안이나 감사드립니다.

답변

1

UiBinder는 JavaScript 및 HTML 코드에 대해 "크로스 컴파일"됩니다. 일단 그것이 끝나면 그것을 수정할 수 없습니다. 이제 클라이언트에 XML 구문을 보낸 다음 그리드를 만드는 것과 같은 작업을 수행 할 수있는 방법이 있습니다.

그러나 "코드 숨김"에 새 행을 추가 할 수 있습니다. 두 번째 질문에 대한

: 당신은 자바에서 UIBinder에 데이터를 추가 할 수 있습니다, P

+0

"그러나"코드 숨김 "에 새 행을 추가 할 수 있습니다." 즉, 데이터에 따라 ui.xml에서 격자를 먼저 정의하고 gwt (.java) 클래스에서 행의 수를 정의해야합니다. –

+0

예. 나는 그것이 최선의 해결책이 아니라는 것을 알고 있지만 여전히 UiBinder를 사용할 것입니다. 예를 들어 "표제어"와 같은 스타일 및 새로운 위젯을 "표 디자인"에 추가하는 것이 훨씬 쉽습니다. – Stefan

1

예 : 나는 당신이 무슨 뜻인지 모르겠어요. Eclipse에서 UIBinder를 만들 때이 XML에 대한 .java 파일도 만들었습니다. 이 해당 자바 파일을 편집하고 다음과 같이 뭔가를 추가

public class MyGridSample extends Composite { 
    // uiBinder interface declaration... 
    private static MyGridSampleUiBinderUiBinder uiBinder = GWT.create(MyGridSampleUiBinder.class); 

    interface MyGridSampleUiBinder extends UiBinder<Widget, MyGridSample > { 
    } 

    // annotation to get ui-field into code 
    @UiField 
    Grid mygrid; 

    public MyGridSample() { 
     setWidget(uiBinder.createAndBindUi(this)); 
     // sets cell 0,0 with label 
     mygrid.setWidget(0, 0, new Label("cell 0")); 
    } 
} 

GWT는 클라이언트 측 프레임 워크와 UIBinder 자바 스크립트 파일로 사전 컴파일 - 그들은 정적 파일로 제공됩니다. 이 템플릿에 데이터를 가져 오기 위해 Webservice 호출을해야합니다.

관련 문제