如何定义HTMLPanel的ID? 因为我可能会把这个html包围,但是这个伤口也没有设置小组的ID。
答案 0 :(得分:6)
htmlPanel.getElement().setId("myId");
如果面板是在UiBinder模板中定义的,那么你必须通过“ui:field”在Java类中访问它:
<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类可以并且应该在同一页面上重复使用)。
答案 1 :(得分:5)
你可以这样做:
htmlPanel.getElement().setId( "yourId" );
这适用于任何小部件/元素。