从GWT 2.3升级到2.4导致扩展CellTable的一个类中的客户端异常。一直没有功能损失,但例外是不断发展的烦恼。GWT 2.4 CellTable问题
com.google.gwt.core.client.JavaScriptException:(类型错误):this.insertBefore不是一个函数
我已经确定导致此行,虽然异常不会抛出,直到表格稍后渲染。在行更改处理程序中,当CellTable中没有行时,MyCellTable将删除标题元素。以下是导致2.4中出现异常的一些示例代码,但不是2.3中的异常。
CellTable<String> table = new CellTable<String>();
table.addColumn(new TextColumn<String>() {
@Override
public String getValue(String object) {
return object;
}
}, "Col");
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("def");
table.setRowData(list);
NodeList<Element> els = table.getElement().getElementsByTagName("THEAD");
if (els.getLength() == 0) {
return;
}
final Element e = els.getItem(0);
e.removeFromParent();
降级到GWT 2.3可以解决问题。我尝试调用headerElement.setAttribute(“style”,“display:none”)而不是删除元素,但看起来不一样(它仍然保留几个像素)。我知道创建一个CellTable然后撕掉它的一部分可能是一个不好的做法。
GWT 2.4中是否有可能导致此问题的已知更改?任何人都可以想到解决方法吗?