Hi,
I've having a problem accessing the value of a ComboBoxItem in a grid cell while editing. It doesn't seem to get updated. The KeyUp event gets fired OK, it's just the value is always set to 'null'.
I've got a test case below with an example of the value working in a form, and not working in the grid:
Is it something to do with the lack of a DynamicForm in the grid? Is there any way I can access the value of the combobox in the grid?
I'd really appreciate any help you can give me on this.
Thanks,
Alan
I've having a problem accessing the value of a ComboBoxItem in a grid cell while editing. It doesn't seem to get updated. The KeyUp event gets fired OK, it's just the value is always set to 'null'.
I've got a test case below with an example of the value working in a form, and not working in the grid:
Code:
import com.google.gwt.core.client.EntryPoint; import com.smartgwt.client.types.ListGridEditEvent; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.types.SelectionStyle; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.form.fields.events.KeyUpEvent; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.ComboBoxItem; import com.smartgwt.client.widgets.form.fields.events.KeyUpHandler; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; public class Test2 implements EntryPoint { Label label; public Test2() { } public void onModuleLoad() { VLayout v = new VLayout(); v.setWidth100(); v.setHeight100(); label = new Label(); label.setContents(""); label.setBorder("1px dashed black"); v.addMember(label); v.addMember(thisWorks()); v.addMember(thisDoesntWork()); v.draw(); } public DynamicForm thisWorks() { final ComboBoxItem c = new ComboBoxItem("combobox1", "This works"); c.setShowPickerIcon(false); c.setShowPickListOnKeypress(true); c.addKeyUpHandler(new KeyUpHandler() { public void onKeyUp(KeyUpEvent event) { label.setContents("Value: '" + c.getValueAsString() + "'"); } }); DynamicForm f = new DynamicForm(); f.setFields(c); return f; } private VLayout thisDoesntWork() { final ListGrid grid = new ListGrid(); grid.setWidth(600); grid.setHeight(200); grid.setAlternateRecordStyles(true); grid.setShowAllRecords(true); grid.setShowHeaderContextMenu(false); grid.setID("abcd"); grid.setShowRollOver(false); grid.setSelectionType(SelectionStyle.NONE); grid.setCanEdit(true); grid.setEditByCell(true); grid.setEditEvent(ListGridEditEvent.CLICK); ListGridField textField = new ListGridField("TEXT", "This doesn't work"); textField.setWidth("*"); textField.setType(ListGridFieldType.TEXT); final ComboBoxItem c = new ComboBoxItem(); c.setShowPickerIcon(false); c.setShowPickListOnKeypress(true); c.addKeyUpHandler(new KeyUpHandler() { public void onKeyUp(KeyUpEvent event) { label.setContents("Value: '" + c.getValueAsString() + "'"); } }); textField.setEditorType(c); grid.setFields(textField); Button button = new Button("Add row"); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { grid.startEditingNew(); } }); VLayout v = new VLayout(); v.addMember(grid); v.addMember(button); return v; } }
I'd really appreciate any help you can give me on this.
Thanks,
Alan
Comment