簡體   English   中英

如何清除GWT CellTable上的用戶輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM