0

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

我的目标是向用户展示从查询中检索到的一组数据,他需要为其中一个字段指定一个值。例如,假设查询返回电话号码列表,用户需要分别指定号码类型(即家庭、办公室、手机或寻呼机)。

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

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

我一直在寻找答案,但没有成功。

4

2 回答 2

0

我建议使用Grid,而不是EditorGrid。在Grid中使用RowEditor时,用户保存行更改时会触发 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);

希望能帮助到你。

于 2013-02-26T23:21:30.820 回答
0

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

这样,当您的 Grid 被渲染时,电话号码旁边将有类型,并选择了默认值。

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

于 2013-03-04T11:31:37.507 回答