[英]How to clear the user input on a GWT CellTable?
我有一個CellTable<Price> table = new CellTable<Price>();
。
我也有一個TextInputCell
列:
priceColumn = new Column<Price, String>(new TextInputCell()) {
public String getValue(Price p) {
if (p.getPrice() == 0)
return "";
return p.getPrice()+"";
}
};
我也有一個refresh button
。 如果按下該按鈕,則基本上可以從服務器重新加載所有數據,然后將數據設置到表中。
當表第一次加載數據時,就可以了。 假設一個單元格的價格為12 。
然后,如果我修改單元格11(或任何超過12其他值),那么11
停留永遠存在。 我的意思是,即使我按refresh button
,單元格的數據不會變回12
,但仍停留11
。
如何使列/單元格不記住用戶輸入?
在收到新數據並使用新數據調用table.redraw();
更新對象之后table.redraw();
工作實例
final Price p1 = new Price(4);
final Price p2 = new Price(5);
final Price p3 = new Price(6);
final CellTable<Price> table = new CellTable<Price>();
Column<Price, String> priceColumn = new Column<Price, String>(new TextInputCell()) {
public String getValue(Price p) {
if (p.getPrice() == 0)
return "";
return p.getPrice() + "";
}
};
ListDataProvider<Price> dataProvider = new ListDataProvider<Price>();
dataProvider.addDataDisplay(table);
List<Price> list = dataProvider.getList();
list.add(p1);
list.add(p2);
list.add(p3);
table.addColumn(priceColumn);
Button b = new Button("refresh");
b.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// your refresh logic, update the items already loaded into the CellTable!
p2.setPrice(1000);
p3.setPrice(2000);
table.redraw();
}
});
RootPanel.get().add(table);
RootPanel.get().add(b);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.