我有CellWidget
(EditTextCell
),我想通过代码手动设置特定值。但是,当我使用以下代码时,UI不会更新?我错过了什么?
@UiField(provided = true)
CellWidget<String> cell;
cell.setValue(text, true);
cell.redraw();
答案 0 :(得分:0)
回答我自己的问题,因为我找到了解决方法:
((EditTextCell) cell.getCell()).clearViewData(KEY_PROVIDER.getKey(text));
cell.getCell().setValue(new Context(0, 0, KEY_PROVIDER.getKey(text)), cell.getElement(), text);
cell.setValue(text, true, true);
不知道这是否是在单个cellwidget文本单元上强制更新的正确方法,但至少它是有效的。
答案 1 :(得分:0)
我不是百分百肯定你在这里想做什么。您是否尝试更新CellTable
中的特定单元格?在这种情况下,我不确定您的解决方案是否有效。如果您只想刷新表中的数据,那么您应该使用DataProvider
,然后只需更改它,UI也应该更改。如果您想要表格来响应用户事件(例如点击一个单元格),您应该转而考虑handling Cell events。