2012-10-14 5 views

답변

5

당신은 그런 식으로 작업을 수행 할 수 있습니다이 어떤 위젯/요소에 대한 작동

htmlPanel.getElement().setId("yourId"); 

합니다.

6
htmlPanel.getElement().setId("myId"); 

패널이 UiBinder 템플릿에 정의 된 경우, 다음을 통해 자바 클래스에 액세스 할 수 있도록 할 것 "UI : 필드"

<g:HTMLPanel ui:field="htmlPanel">...</g:HTMLPanel> 
... 

@UiField 
HTMLPanel htmlPanel; 

public MyWidget() { 
    initWidget(uiBinder.createAndBindUi(this)); 
    htmlPanel.getElement().setId("myId"); 
} 

참고 : 사용 <g:HTMLPanel id="myId">가 작동하지 않습니다.

사용하여 ID를 GWT 위젯을 위해 간단하게되지 않은 이유가있다 :

당신은 같은 페이지에 두 번 같은 ID를 가지고 않도록주의해야합니다. 이것은 자연 재사용 요소 때문에 위젯에서 특히 쉽게 발생합니다. (위젯을 다시 사용할 수있을뿐만 아니라 부모 위젯 일 수도 있습니다 ...)

예. MyWidget이 페이지 문서에서 동시에 여러 번 나타날 수 있다면 매번 다른 ID를 설정해야합니다. 가능하면 가능하고 com.google.gwt.dom.client.Document.createUniqueId()을 사용할 수 있습니다.

또는 가능한 경우 CSS 클래스를 id 대신 사용할 수 있습니다 (CSS 클래스는 동일한 페이지에서 다시 사용할 수 있기 때문에).

관련 문제