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

标签 gwt

如何定义 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/

相关文章:

css - 设置面板组件 div id

java - 使用 JSNI 在 GWT 中使用原生 Phonegape js

gwt - RequestBuilder 返回空响应

java - 如何获取地理位置详细信息位置错误原因

javascript - GWT 中的深度克隆

gwt - 适用于大数据的分页 GWT DataGrid

GWT 中的 Java 定时器

java - GWT 警告 : No file found for:/com. mycompany.project.ImageViewer/GreetingService

gwt - 如何用 safeHtml 值填充 UiRenderer?

javascript - 是否应该避免编写 Javascript 以支持 GWT/WebSharper 或其他一些抽象?