SGWT: v10.0p_2014-10-22
FF:26
When switching back between records in the SelectItem, a record's value in the form changes. We're using setDataPath for the server-side only. Below is code to test. Reproduction steps include: Select 1, then 2, then 1; or Select 1, 2, 3.
Thank you.
FF:26
When switching back between records in the SelectItem, a record's value in the form changes. We're using setDataPath for the server-side only. Below is code to test. Reproduction steps include: Select 1, then 2, then 1; or Select 1, 2, 3.
Code:
Record record;
Record[] records = new Record[3];
DataSource ds = new DataSource();
public void onModuleLoad() {
DataSourceField idField = new DataSourceField("id", FieldType.INTEGER, "Id");
DataSourceField nameField = new DataSourceField("name", FieldType.TEXT, "Name");
idField.setPrimaryKey(true);
ds.setFields(idField, nameField);
ds.setClientOnly(true);
for(int i = 0; i < 3; ++i) {
records[i] = new Record();
records[i].setAttribute("id", i);
records[i].setAttribute("name", "Foo"+i);
}
ds.setTestData(records);
new DynamicForm(){{
final DynamicForm form = this;
setFields(new SelectItem("recordId", "Record"){{
setRequired(true);
setDataPath("record/id");
setValueField("id");
//setDisplayField("name");
setOptionDataSource(ds);
addChangedHandler(new ChangedHandler() {
@Override
public void onChanged(ChangedEvent event) {
record = getSelectedRecord();
form.setValue("record", record);
}
});
}});
}}.show();
}