EditorGrid中的字段验证

时间:2013-02-26 20:03:34

标签: gxt

让我们首先说我在GWT 2.3.0上使用GXT 2.2.5。

我的目标是向用户呈现从查询中检索到的一组数据,他需要为其中一个字段指定值。例如,假设查询返回一个电话号码列表,用户需要分别编号(即Home,Office,Cell或Pager)。

所以我将EditorGrid视为潜在的解决方案。网格将显示类型和编号,ComboBox通过CellEditor附加到第一个字段。

要求是用户必须为每个号码选择一种类型。我该如何执行?我可以在ComboBox上将allowBlank设置为false,但我该如何管理它?如何验证网格?

我已经找到了答案,但都没有成功。

2 个答案:

答案 0 :(得分:0)

我建议使用 Grid ,而不是 EditorGrid 。在网格中使用 RowEditor 时,当用户保存行更改时会触发allowBlank验证(或任何其他字段验证程序)。

以下是一个小例子,以防您不熟悉网格:

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);
希望它有所帮助。

答案 1 :(得分:0)

拥有SimpleComboBox<String>来存储所有类型的号码(家庭,办公室等)。将其附加到EditorGrid。为setEditable(false)设置SimpleComboBox<String>属性,并确保在组合框中默认选择有效的“类型”(使用setValue(...))。

通过这种方式,当您的网格被渲染时,电话号码旁边会显示类型,并选择默认值。

我觉得这是一个很好的方法,而不是最初使用具有空白值的组合框,然后要求用户通过显示验证错误来填充它。