Проверка поля в EditorGrid

Начнем с того, что я использую GXT 2.2.5 на GWT 2.3.0.

Моя цель — предоставить пользователю набор данных, полученных из запроса, где ему нужно указать значение для одного из полей. В качестве примера предположим, что запрос возвращает список телефонных номеров, и пользователю необходимо указать тип номера (например, домашний, офисный, сотовый или пейджер).

Поэтому я рассматриваю EditorGrid как потенциальное решение. В сетке будут отображаться тип и число, а ComboBox будет прикреплен к первому полю через CellEditor.

Требование состоит в том, что пользователь должен выбрать тип для каждого числа. Как я могу обеспечить это? Я могу установить для параметра AllowBlank значение false в ComboBox, но как мне с этим справиться? Как проверить сетку?

Я искал ответ, но безуспешно.


gxt
person NestorDRod    schedule 26.02.2013    source источник


Ответы (2)


Я предлагаю использовать Grid, а не EditorGrid. При использовании RowEditor в Grid проверка allowBlank (или любой другой валидатор полей) запускается, когда пользователь сохраняет изменения строки.

Вот небольшой пример на случай, если вы не знакомы с Grid:

ColumnConfig colNombre = new ColumnConfig("name", "Name", 200);
            TextField<String> txtNombre = new TextField<String>();
            txtNombre.setAllowBlank(false);
            txtNombre.getMessages().setBlankText("IT CANT BE EMPTY.");
            colNombre.setEditor(new CellEditor(txtNombre));
            configs.add(colNombre);



re = new RowEditor<BeanModel>();
        re.addListener(Events.AfterEdit, new Listener<RowEditorEvent>() {
            public void handleEvent(RowEditorEvent e) {
                editar(e);
            }
        });
        re.setClicksToEdit(ClicksToEdit.TWO);

        grid = new Grid<BeanModel>(STORE, new ColumnModel(configs));
        grid.addPlugin(re);

Надеюсь, поможет.

person Pablo Chvx    schedule 26.02.2013

Имейте SimpleComboBox<String> для хранения всех типов номеров (домашний, офисный и т.д.). Прикрепите его к EditorGrid. Установите свойство setEditable(false) для SimpleComboBox<String> и убедитесь, что допустимый "тип" выбран по умолчанию в поле со списком (используя setValue(...)).

Таким образом, когда ваша сетка будет визуализирована, телефонные номера будут иметь тип рядом с ними, с выбранным значением по умолчанию.

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

person sanbhat    schedule 04.03.2013
comment
Проблема с этим подходом заключается в том, что он побуждает пользователей лениться и не определять, какой тип числа на самом деле. Мне нужно убедиться, что они активно выбирают вариант, а не просто оставляют какое-то произвольное значение по умолчанию. - person NestorDRod; 04.03.2013