1

更新された値を永続化する前に確認したい。チェックが失敗した場合、更新を破棄したいのですが、うまくいきません。

EditTextCell cell = new EditTextCell();
Column<AnObject, String> column = new Column<AnObject, String>(cell) +
{ @Override public String getValue(AnObject object) 
  { logger.info("getVal:"+object.getId()+", "+object.getAttr());
    return object.getAttr();
  }
};

column.setFieldUpdater(new FieldUpdater<AnObject, String>()
{ @Override public void update(int index, AnObject object, String value)
  { if (checkValue(value)
    { object.setAttr(value);
      databaseUpdate(object);
    } else
    { taskDataProvider.refresh();  // to display the original value. Doesn t work
    }
  }
});

列の getValue() メソッドが呼び出され、古い値が返されますが、新しく編集された値は引き続き表示されます。何がうまくいかないのですか?

4

1 に答える 1

2

このようにelseステートメントでclearViewDataメソッドを呼び出します

cell.clearViewData(KEY_PROVIDER.getKey(object)); table.redraw();

于 2013-03-22T19:46:11.743 に答える