我正在使用UIBinder创建一个小部件。
ui.xml
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
.back { background-color: Skyblue; }
</ui:style>
<g:HTML>
<div ui:field="somediv">
<tr class="{style.back}">
<td>The background is NOT Skyblue</td>
</tr>
</div>
</g:HTML>
</ui:UiBinder>
的java
public class Test extends Composite {
interface TestUiBinder extends UiBinder<HTML, Test> {}
private static TestUiBinder uiBinder = GWT.create(TestUiBinder.class);
public Test() {
initWidget(uiBinder.createAndBindUi(this));
}
入口点:
public void onModuleLoad()
{
Test test = new Test();
RootPanel.get().add(test);
}
文字没有天蓝色...... 但是,如果我在我的td中添加一个span元素并执行class =“{style.back}”,那就可以了。 为什么呢?
另外,如果我尝试在我的td / tr标签中添加一个ui:字段,我会崩溃:
java.lang.reflect.InvocationTargetException at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at
java.lang.reflect.Method.invoke(Unknown Source) at
com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396) at
com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:183) at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:5
10) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352) at
java.lang.Thread.run(Unknown Source) Caused by:
com.google.gwt.core.client.JavaScriptException: (TypeError): this.removeAttribute is not a function
答案 0 :(得分:0)
正如@Chris Lercher在评论中所说,在tr周围添加一个表解决了这个问题。结束问题..