如何定义 HTMLPanel 的 ID?当然,我可以用 a 包围 HTML,<div id="anID">
但这也不会设置面板的 ID。
问问题
1941 次
2 回答
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">
不起作用。
有一个原因,为什么 GWT 小部件的使用 id 没有变得更简单:
您必须非常小心,不要在同一页面上两次使用相同的 id。由于自然的重用因素,小部件尤其容易发生这种情况。(不仅可以重复使用小部件,还可以重复使用父小部件......)
因此,例如,如果 MyWidget 可以在您的页面文档中同时出现多次,您必须确保每次都设置不同的 id。可以这样做,如果需要,可以使用com.google.gwt.dom.client.Document.createUniqueId()
.
或者,如果可能,可以使用 CSS 类而不是 id(因为 css 类可以而且应该在同一页面上重复使用)。
于 2012-10-14T16:36:04.093 回答
5
你可以这样做:
htmlPanel.getElement().setId( "yourId" );
这适用于任何小部件/元素。
于 2012-10-14T16:11:42.537 回答