我有一個CellWidget
(EditTextCell
),我想通過代碼手動設置一個特定的值。但是當我使用下面的代碼時UI不會更新?我錯過了什麼?如何通過代碼更新單元格值?
@UiField(provided = true)
CellWidget<String> cell;
cell.setValue(text, true);
cell.redraw();
我有一個CellWidget
(EditTextCell
),我想通過代碼手動設置一個特定的值。但是當我使用下面的代碼時UI不會更新?我錯過了什麼?如何通過代碼更新單元格值?
@UiField(provided = true)
CellWidget<String> cell;
cell.setValue(text, true);
cell.redraw();
回答我的問題,我找到了一個解決辦法:
((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 textcell更新的正確方法,但至少它作品。
我不是100%確定你要在這裏做什麼。您是否想要更新CellTable
中的特定單元格?在這種情況下,我不確定你的解決方案是否可行。如果你只是想刷新表中的數據,那麼你應該使用DataProvider
,然後改變它,UI也應該改變。如果您希望表格響應用戶事件(例如單擊某個單元格),則應該查看handling Cell events。