我正在将 GWT 2.5 用于应用程序。我有一些带有特别命名的 div 的静态 HTML,并且我正在使用HTMLPanel.wrap()
GWT 登录面板替换该 div。用户登录后,我将使用DOM.removeChild()
从页面中删除所有静态元素,只使用 GWT 小部件。这一切都很好。静态 HTML 类似于:
<body><div id="main_content"><div id="embed_content"></div></div></body>
但是,注销后,我想替换之前删除的所有静态元素,并再次将特殊的 div 替换为登录面板,使其看起来与您第一次登录时相同。我尝试了许多不同的方法这个,但他们通常会因错误而失败:
“具有现有父小部件的小部件可能不会添加到分离列表中”
当我尝试再次包装 div 时。我包装 div 的代码是:
RootPanel rpe = RootPanel.get("embed_content");
rpe.clear();
Element child;
while((child = DOM.getFirstChild(rpe.getElement())) != null) {
DOM.removeChild(rpe.getElement(), child);
}
HTMLPanel.wrap(rpe.getElement()).add(this);
“this”是一个 HTMLPanel。删除元素的代码是:
RootPanel rpm = RootPanel.get("main_content");
rpm.clear();
Element child;
while((child = DOM.getFirstChild(rpm.getElement())) != null) {
DOM.removeChild(rpm.getElement(), child);
}
HTMLPanel.wrap(rpm.getElement()).add(this);
我得到的最接近的是将元素保存在数组中,然后当我想再次显示静态内容时,我使用DOM.appendChild()
将它们添加回来。那时,“embed_content”元素存在并且一切都很好,除了我在HTMLPanel.wrap
声明中得到上面提到的错误。所以我不知道我是否使用了错误的方法,或者什么。任何建议将不胜感激。