让我们首先说我在GWT 2.3.0上使用GXT 2.2.5。
我的目标是向用户呈现从查询中检索到的一组数据,他需要为其中一个字段指定值。例如,假设查询返回一个电话号码列表,用户需要分别编号(即Home,Office,Cell或Pager)。
所以我将EditorGrid视为潜在的解决方案。网格将显示类型和编号,ComboBox通过CellEditor附加到第一个字段。
要求是用户必须为每个号码选择一种类型。我该如何执行?我可以在ComboBox上将allowBlank设置为false,但我该如何管理它?如何验证网格?
我已经找到了答案,但都没有成功。
答案 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(...)
)。
通过这种方式,当您的网格被渲染时,电话号码旁边会显示类型,并选择默认值。
我觉得这是一个很好的方法,而不是最初使用具有空白值的组合框,然后要求用户通过显示验证错误来填充它。