使用 GWT 将内容添加到 HTML 中的 div

Posted

技术标签:

【中文标题】使用 GWT 将内容添加到 HTML 中的 div【英文标题】:Adding content to a div in HTML using GWT 【发布时间】:2016-02-03 02:15:44 【问题描述】:

我对 GWT 很陌生,我在我的起始 GWT html 页面上设置了这些动态 div:

<div id="nav">
Navigation goes here...
</div>

<div id="core">
</div>

<div id="footer">
footer info goes here
</div>

我的主类实现了 EntryPoint 和 ValueChangeHandler 以动态更改“核心” div,因此它根据用户在主页上单击的内容呈现不同的信息(因此它模仿使用不同的页面,但仅使用历史记录中的一个和超链接类Like this)。我试着用类似的东西来做这个:

        VerticalPanel panel = new VerticalPanel();
        HTML mapHtmlDiv = new HTML("<div id=\"maps\"></div>");
        panel.add(mapHtmlDiv);
        RootPanel.get("core").add(panel);
        // add a widget to the maps div downstream

一旦条件满足。但是,这在 GWT 上是不允许的,因为它会引发错误,“可能无法将具有现有父小部件的小部件添加到分离列表中”,将内容和 div 添加到 HTML 的正确方法是什么?

【问题讨论】:

【参考方案1】:

HTML GWT 中的小部件不是容器。这意味着您不能将小部件添加到其中。请改用 HTMLPanel。

VerticalPanel panel = new VerticalPanel();
HTMLPanel mapPanel = new HTMLPanel(""); //automatically creates a div.
panel.add(mapPanel);
RootPanel.get("core").add(panel);
// add a widget to the maps div downstream
mapPanel.add(new Label("Sample label"));

http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/HTMLPanel.html

【讨论】:

谢谢!效果很好,我还意识到我的 mapwidget 需要在尝试添加之前完全初始化,否则会出现其他错误。【参考方案2】:
VerticalPanel panel = new VerticalPanel();
HTML mapHtmlDiv = new HTML("<div id=\"maps\"></div>");
panel.add(mapHtmlDiv);

Element coreDiv = DOM.getElementById("core");
coreDiv.appendChild(panel.getElement());

【讨论】:

以上是关于使用 GWT 将内容添加到 HTML 中的 div的主要内容,如果未能解决你的问题,请参考以下文章

GWT ScriptInjector VS 将脚本标签添加到 index.html 页面

如何将图像添加到 GWT 中的 cellTable 中的单元格

GWT 设置内部 HTML 给出未知的运行时错误

GWT - 将外部 java 类添加到客户端项目

如何将 Swagger UI 添加到现有的 GXT 或 GWT 项目并使用当前的 GWT-RPC REST 请求?

将小部件添加到地图会破坏 GWT 中的其他小部件