2016-02-17 91 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