Gwt 放弃CellTable中valueupdater的更新值失败

Gwt 放弃CellTable中valueupdater的更新值失败,gwt,gwt-2.2-celltable,Gwt,Gwt 2.2 Celltable,我想在保存更新后的值之前检查它。 如果检查失败,我想放弃更新,但这不起作用 EditTextCell cell = new EditTextCell(); Column<AnObject, String> column = new Column<AnObject, String>(cell) + { @Override public String getValue(AnObject object) { logger.info("getVal:"+object.get

我想在保存更新后的值之前检查它。 如果检查失败,我想放弃更新,但这不起作用

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
    }
  }
});
EditTextCell=新的EditTextCell();
列=新列(单元格)+
{@Override公共字符串getValue(一个对象对象)
{logger.info(“getVal:+object.getId()+”,“+object.getAttr());
返回object.getAttr();
}
};
column.setFieldUpdater(新的FieldUpdater()
{@Override public void update(整数索引、对象对象、字符串值)
{if(检查值(值))
{object.setAttr(值);
数据库更新(对象);
}否则
{taskDataProvider.refresh();//以显示原始值。无效
}
}
});
调用列的getValue()方法并返回旧值,但仍显示新编辑的值。
出了什么问题?

在else语句中调用clearViewData方法,如下所示

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