2016-02-17 68 views
1

我真的想addValueChangeHandler功能添加到flexTable裏面一個TextBox。 但是,當我添加此代碼: int rowIndex = tableImages.getCellForEvent(event).getRowIndex(); 我使用這種方法來了解ClickEvent的當前行。GWT getCellForEvent flexTable

該方法對於ValueChangeEvent, 是不可接受的,所以我怎麼知道改變的單元格的行索引是什麼? 謝謝。

回答

0

嗯,是的,因爲它需要一個細胞本身,而不是一個文本框或事件的價值。 你可以做什麼,就是:

  1. 通過獲取事件源event.getSource()
  2. 鑄造它Widget至少(雖然它是安全的假設它是一個文本框)Widget sourceWidget = (Widget)event.getSource();
  3. 獲取源部件的元素的sourceWidget.getElement().getParent();

這樣你會獲得實際<td>細胞的textBox中嵌套英寸 然後,您可以獲取表格的CellFormatter,並在循環中查找單元格的索引,將您獲得的<td>元素與表格的單元格進行比較。

請告訴我,如果它解決您的問題

+0

您好羅馬, 首先感謝您的快速答覆, 約3部分。我試試這個代碼: 細胞細胞=(小區)widget.getParent(); than cell is com.google.gwt.user.client.ui.HTMLTable.Cell; 並有錯誤:無法施展小部件HTMLTable.Cell 我可以看到HTMLTABLE是一種小部件,但細胞只是HTMLTABLE – Roman

+0

的一部分,你可以登錄它的實際的類,看看是什麼類型的textBox父母呢?另外,您確定您導入的Cell類是HTMLTable嗎?不是其他Cell? –

+0

我的TextBox是com.google.gwt.user.client.ui.TextBox。 是的,我導入了這一個:com.google.gwt.user.client.ui.HTMLTable.Cell; – Roman