我最近創建使用GWT 2.4使用此代碼flextable:與GWT Flextable問題
@uiBinder Flextable flextable;
在構造函數中我調用setupFlexTable()我做
initWidget(uiBinder.createAndBindUi(this));
然後flexTable後被實例化。我錯過了那部分。使用setText()的作品。
//Header row
private void setupFlexTable() {
flexTable.setText(0, 0, "Label One");
flexTable.setText(0, 1, "Label Two");
}
setWidget沒有顯示,但是這是我用:
int numRows = flexTable.getRowCount();
flexTable.setWidget(numRows, 0, new Label("Label One"));
flexTable.setWidget(numRows, 1, new Label("Label Two"));
flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows + 1);
這裏是我在添加行和該代碼可以使用setWidget():
@Override
public void setRowData(Data data) {
int rowCount = flexTable.getRowCount() + 1;
flexTable.setWidget((rowCount), 0, new Label(data.getDataName()));
flexTable.getFlexCellFormatter().setRowSpan(rowCount, 0, 2);
flexTable.setWidget((rowCount), 1, new Label(data.getData()));
flexTable.getFlexCellFormatter().setRowSpan(rowCount, 1, 2);
}
另外,當我使用flexTable.setText(「Label One」);等等......它顯示,但是當我使用setWidget()時,它不?
另一個問題是我需要保持此表與其上的文件列表同步,但使用Firebug我看到,如果我動態地向表中添加兩行,它顯示rowCount爲4?當我嘗試刪除一行併到達這些空白行之一時,會引發一個索引超出界限的錯誤。
作爲解決方法,我使用此代碼來查找我需要刪除的行,並避免空白行的問題(顯然表中插入了兩個且僅有兩個空白行)。
int rows = flexTable.getRowCount();
for(int i=0; i < rows; i++){
//Match the text in the first field in order to know the proper row to delete.
if(flexTable.isCellPresent(i,0) && flexTable.getText(i, 0).equalsIgnoreCase(fileName)){
flexTable.removeRow(i);
break;
}
}
因此,誰能解釋爲什麼setWidget()不顯示任何東西,爲什麼我得到一個額外的空白行中每一個我補充?
它看起來像你的代碼片段缺少上下文 - 你是否使本地變量隱藏你的成員變量?你的代碼中是否指'@ UiField'? – 2012-01-04 18:25:22
我清理了一下,看看爲什麼我得到一個空flexTable,呃!這仍然不能解釋空的空白行或爲什麼setWidget()不顯示任何東西。 – 2012-01-04 18:39:54
你能告訴我你是如何調用'setWidget'嗎? – 2012-01-04 19:23:20