如何定义 HTMLPanel 的 ID?
当然我可以用 <div id="anID">
包围 HTML但这也不会设置面板的 ID。
最佳答案
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 类可以而且应该在同一页面上重复使用)。
关于gwt - 我可以为 HTMLPanel 定义一个 ID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12883329/