具有TextInputCell的GWT CellTable - 值更改需要重绘并且单元格失去焦点

时间:2013-03-13 19:08:09

标签: gwt

我有一个包含少量列的CellTable,其中两列是TextInputCells。在更新此单元格中的值时,我会进行计算(例如:total)并设置总行的值。我需要重绘单元格以立即显示更新的值。我面临的问题是,当用户位于第一个文本单元格并输入一个值并按下键盘上的tab时,由于重新绘制了单元格,因此焦点会从单元格中丢失。

重绘表时,我该怎么办才能不失去焦点?

表格结构:

ID         Description   Month1               Month2
expenseId1   Travel      10                    15
expenseId2   Food        40                    50
Subtotal                 50                    65
Misc.                    TextInputCell      TextInputCell
Total                    50                    65

感谢。

3 个答案:

答案 0 :(得分:0)

计算总计后无需重绘表格。您只需在网格上调用dataProvider.refresh()方法即可。它会刷新你的网格。

答案 1 :(得分:0)

您必须在celltable

上致电setVisibleRange()
 cellTable.setVisibleRangeAndClearData(cellTable.getVisibleRange(),true); 

你也可以这样做

cellTable.setRowData(0, listOfObjs) // where listOfObjs is your changed data

答案 2 :(得分:0)

这是由于渲染周期造成的。所以不可能保存焦点。因为每个渲染周期您的视图对象都不再存在。新的 dom 元素取而代之。