Gwt 我可以为HTMLPanel定义一个ID吗?

Gwt 我可以为HTMLPanel定义一个ID吗?,gwt,Gwt,如何定义HTMLPanel的ID? 当然,我可以用环绕HTML,但这也不会设置面板的ID。您可以这样做: htmlPanel.getElement().setId( "yourId" ); 这适用于任何小部件/元素。htmlPanel.getElement().setId(“myId”); 如果面板是在UiBinder模板中定义的,则必须通过“ui:field”在Java类中使其可访问: 。。。 。。。 @尤菲尔德 HTMLPanel HTMLPanel; 公共MyWidget(){ in

如何定义HTMLPanel的ID?
当然,我可以用
环绕HTML,但这也不会设置面板的ID。

您可以这样做:

htmlPanel.getElement().setId( "yourId" );
这适用于任何小部件/元素。

htmlPanel.getElement().setId(“myId”);
如果面板是在UiBinder模板中定义的,则必须通过“ui:field”在Java类中使其可访问:

。。。
。。。
@尤菲尔德
HTMLPanel HTMLPanel;
公共MyWidget(){
initWidget(uiBinder.createAndBindUi(this));
htmlPanel.getElement().setId(“myId”);
}
注意:使用
不起作用

对于GWT小部件来说,使用ID没有变得更简单是有原因的:

您必须非常小心,不要在同一页上重复使用同一id。这在小部件中尤其容易发生,因为它具有自然的重用因素。(不仅可以重复使用小部件,还可以重复使用父小部件…)

例如,如果MyWidget可以在您的页面文档中同时出现多次,那么您必须确保每次都设置不同的id。可以这样做,如果您愿意,可以使用
com.google.gwt.dom.client.Document.createUniqueId()

或者,如果可能的话,可以使用CSS类而不是id(因为CSS类可以而且应该在同一页面上重复使用)