2016-10-31 1 views

Répondre

2

Vous devez clearViewData et redrawRow:

final CellTable<MyTableType> table = new CellTable<MyTableType>(); 

final MyEditTextCell cell = new MyEditTextCell(); 

Column<MyTableType, String> column = new Column<MyTableType, String>(cell) { 
    @Override 
    public String getValue(MyTableType object) { 
     if(object.getValue() == null) 
      return ""; 
     else 
      return object.getValue(); 
    } 
}; 
column.setFieldUpdater(new FieldUpdater<MyTableType, String>() { 
    @Override 
    public void update(int index, MyTableType object, String value) { 
     if(Window.confirm("Replace with \"" + value + "\"?")) 
      object.setValue(value); 
     else { 
      cell.clearViewData(object); 
      table.redrawRow(index); 
     } 
    } 
}); 
+0

Comment puis-je référence à 'cell'? Il n'y a pas de tel paramètre dans les méthodes – masterdany88

+0

Vous déclarez 'cell' - J'ai mis à jour ma réponse pour montrer les déclarations. – Adam

+0

Donc, cette cellule final MyEditTextCell = new MyEditTextCell(); 'stocke la référence à la cellule actuelle? – masterdany88