我想在UIBinder中使用以下内容,以便我可以href在代码中以编程方式设置链接.
<g:HTMLPanel>
<g:Anchor ui:field="link">
<g:InlineLabel ui:field="firstName"/>
<g:InlineLabel ui:field="lastName"/>
</g:Anchor>
</g:HTMLPanel>
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我得到:
ERROR: Found widget in an HTML context Element <g:InlineLabel ui:field='firstName'> (:7).
Run Code Online (Sandbox Code Playgroud)
如何在锚点中嵌入小部件?以前我使用过:
<a id="myAnchor">
etc...
</a>
Run Code Online (Sandbox Code Playgroud)
然后在我的代码中操作DOM来设置HREF,但那很难看.有没有更好的办法?
bog*_*anb 15
下面的类与SimplePanel完全相同(即,您可以在其中放置一个小部件),但使用"a"而不是"div".如果您需要更多小部件,只需在其中放入另一个面板即可.
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.SimplePanel;
public class Link extends SimplePanel {
public Link() {
super(DOM.createAnchor());
}
private void setHref(String href) {
getElement().setAttribute("href", href);
}
private String getHref() {
return getElement().getAttribute("href");
}
public void setTarget(String frameName) {
getElement().setAttribute("target", frameName);
}
}
Run Code Online (Sandbox Code Playgroud)