從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中是否有可能導致此問題的已知更改?任何人都可以想到解決方法嗎?