【发布时间】:2019-04-25 06:36:03
【问题描述】:
我是 Vaadin 框架的新手。尝试使用grid.getEditorFieldGroup().addCommitHandler() 的preCommit() 方法验证网格列。当我第一次验证时,验证成功并且错误指示以及错误消息成功显示。但是,如果我立即保存,则在到达 preCommit() 方法时相应的值变为空。如何解决这个问题?
我尝试过使用次要对象。所以我认为这不会影响源对象。但这对我没有帮助。
grid.getEditorFieldGroup().addCommitHandler(new FieldGroup.CommitHandler() {
@Override
public void preCommit(FieldGroup.CommitEvent commitEvent) throws
FieldGroup.CommitException {
BeanItem item = (BeanItem)
commitEvent.getFieldBinder().getItemDataSource();
MyClass qm = (MyClass) item.getBean();
grid.getColumn("myColumn").
setEditorField(generateMachineCode(qm.myColumnValue());
}
private Field << ? > generateMachineCode(String machineCode) {
TextField editableTextFiled = new TextField();
editableTextFiled.setEnabled(true);
if (StringUtils.isNotEmpty(machineCode) && !machineCode.equals("12345")) {
editableTextFiled.addValidator(new StringLengthValidator("It must be 6
characters ", 6, 6, false));
}
}
}
【问题讨论】:
标签: java vaadin vaadin7 vaadin-grid