Почему вы не можете добавить обработчик EditorExit в DynamicForm или FormItem?

Этот обработчик существует только для ListGrid.

Но если вы посмотрите на документы для DynamicForm.setValidateOnExit(), там написано:

If true, form items will be validated when each item's "editorExit" handler is fired as well as when the entire form is submitted or validated.

Note that this property can also be set at the item level to enable finer granularity validation in response to user interaction - if true at either level, validation will occur on editorExit.

Итак, как мы можем добавить EditorExitHandler в DynamicForm или FormItem?

ИЗМЕНИТЬ:

Я хочу создать панель ошибок под формой, чтобы динамически отображать все ошибки. Каждый FormITem имеет возможность проверки при выходе, но я не знаю, как перехватить это событие проверки, чтобы проверить, следует ли обновлять панель ошибок или нет.


person Adel Boutros    schedule 29.03.2012    source источник
comment
Возможно, вам следует описать нам, чего вы пытаетесь достичь, и мы можем обсудить, как это можно поддержать с помощью того, что уже доступно в API smartGWT. И только для семантики - но EditorExitHandler все еще не существует - editoExit относится к FormItems, а не к DynamicForm, и он указан в кавычках.   -  person gpapaz    schedule 30.03.2012


Ответы (2)


Есть один метод form.getErrors() и form.showError(true). Этим вы можете достичь этого. Но для этого вам также нужно установить Validator для каждого поля.

TextItem name = new TextItem("name", "Name");
name.setRequired(true);
name.setRequiredMessage("Please specify name of the Table");

NTRegExpValidator nameValidator = new NTRegExpValidator("(^[a-zA-Z0-9][\\w\\s.()_-]+)$","It should start with alphabets and can have alphanumeric values ( )_-. and space.");

name.setValidators(nameValidator);
name.addKeyUpFieldHandler(new KeyUpHandler){
    form.getErrors();
    form.showErrror(true);
});

DynamicForm form = new DynamicForm();
form.setField(name);
person PVR    schedule 30.03.2012
comment
Я не хочу показывать ошибки как есть. Я хочу отобразить их на панели, которую я создал. Кроме того, нет необходимости в KeyUpFieldHAndler, так как уже есть функция проверки изменений, которую я не хочу использовать, потому что она глючит. Я просто хочу зафиксировать событие, которое говорит: «Эй, я прошел проверку». - person Adel Boutros; 30.03.2012
comment
Ребята, перестаньте голосовать за этот ответ. Потому что это не ответ на вопрос! Даже ответчик признал, что - person Adel Boutros; 17.05.2012

После некоторых исследований я все еще не нахожу убедительного ответа. Я думаю, это должно быть требование разработчика

person Adel Boutros    schedule 31.07.2012