2012-10-14 18 views

回答

5

你可以那樣做:

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

這適用於任何小部件/元素。

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

如果面板在UiBinder的模板中定義的,那麼你就必須使它在Java類訪問通過 「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">不起作用。

還有一個原因,爲什麼使用IDS不是爲GWT部件更加簡單:

你必須非常小心,不要有相同的ID兩次在同一頁上。由於自然的再利用因素,這對於小部件尤其容易發生。 (不僅可以在小部件被重新使用,但也許還父控件...)

所以如如果MyWidget可以在頁面文檔中同時出現多次,則必須確保每次都設置一個不同的ID。這是可能的,如果你願意,你可以使用com.google.gwt.dom.client.Document.createUniqueId()

或者,如果可能的話,也許使用的,而不是一個ID(因爲CSS類可以而且應該在同一頁上重新使用)的CSS類。

相關問題