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

时间:2015-11-03 02:31:23

标签: html gwt

我是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来动态地改变&#34;核心&#34; 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上不允许这样做,因为它会引发错误。#34;具有现有父窗口小部件的窗口小部件可能无法添加到分离列表&#34;,添加内容的正确方法是什么? div为HTML?

2 个答案:

答案 0 :(得分:2)

GWT中的

HTML小部件不是容器。这意味着您无法将小部件添加到其中。改为使用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

答案 1 :(得分:-1)

VerticalPanel panel = new VerticalPanel();
HTML mapHtmlDiv = new HTML("<div id=\"maps\"></div>");
panel.add(mapHtmlDiv);

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