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 回答