Проверка значения столбца в сетке vaadin 7 - PullRequest
1 голос
/ 25 апреля 2019

Я новичок в Vaadin Framework.Попытка проверить столбец сетки, используя preCommit() метод grid.getEditorFieldGroup().addCommitHandler().Когда я проверил первый раз, проверка прошла успешно, и сообщение об ошибке, а также сообщение об ошибке были показаны успешно.Но опять же, если я сохраняю немедленно, соответствующее значение становится нулевым при достижении метода 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));
        }
    }
}

1 Ответ

0 голосов
/ 26 апреля 2019

Я преодолел эту проблему, получив новое введенное значение из столбца вместо метода preCommit ().Пожалуйста, обратитесь ниже,

TextField nameField = (TextField) grid.getColumn("name").getEditorField();
nameField .getValue(); // new name. 

Я буду каждый раз устанавливать это новое имя для моего исходного объекта.Итак, однажды проверка прошла успешно.Значение поля остается тем же, поскольку мы устанавливаем его для объекта.

...