Hello, I'm asking for help... I'm a newbie in wicket and I need to solve quite quick following problem:
there are 2 AutoCompleteTextField fields in the form on the page A, when value in the first field selected the second one is filled automatically and vice versa. These fields are filling two fields of one Object. there is a possibility to go to the other page and then return back after creating some staff on the page B. The problem is in usage of back button to return from page B to page A without creation any staff. The field that was set during ajax event handling becomes empty. Huge thanks in advance! The code I'm using is following: public class MyPage extends WebPage { private MyObj myO = new MyObj(); public MyPage() { Form myForm = new MyForm("myForm"); FeedbackPanel message = new FeedbackPanel("message"); message.setOutputMarkupId(true); add(message); add(myForm); } private class MyForm extends Form { private HashMap<String, NameDTO> autoComplete; NameDTO myNameDTO; private AutoCompleteTextField number; private AutoCompleteTextField name; public MyForm(String id) { super(id); number = this.initNummer(); name = this.initName(); //AutoComplete fields add(number); add(name); ... } //EO Form constructor private AutoCompleteTextField initNummer() { AutoCompleteTextField nummer; IAutoCompleteRenderer numRenderer = new AbstractAutoCompleteTextRenderer() { @Override protected String getTextValue(Object obj) { if (obj != null) { NameDTO obj2 = (NameDTO) obj; autoComplete.put(obj2.getNummer(), obj2); return obj2.getNummer(); } return ""; } }; // initialize number nummer = new AutoCompleteTextField("number", new PropertyModel(myO, "nummer"), numRenderer) { @Override protected Iterator getChoices(String prefix) { autoComplete = new HashMap<String, NameDTO>(); List objs = CompleteUtils.readByNummer(prefix); return objs.iterator(); } }; nummer.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { myNameDTO = autoComplete.get(myO.getNummer()); name.modelChanging(); myO.setName((myNameDTO == null) ? "" : myNameDTO.getName()); name.setModelObject(myO.getName()); name.modelChanged(); target.addComponent(name); } }); nummer.setOutputMarkupId(true); return nummer; } private AutoCompleteTextField initName() { AutoCompleteTextField name; IAutoCompleteRenderer myNameRenderer = new AbstractAutoCompleteTextRenderer() { @Override protected String getTextValue(Object obj) { if (obj != null) { NameDTO obj2 = (NameDTO) obj; autoComplete.put(obj2.getName(), obj2); return obj2.getName(); } return ""; } }; //initialize name name = new AutoCompleteTextField("name", new PropertyModel(myO, "name"), myNameRenderer) { @Override protected Iterator getChoices(String prefix) { autoComplete = new HashMap<String, NameDTO>(); List objs = AutoCompleteUtils.readByName(prefix); return objs.iterator(); } }; name.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { myNameDTO = autoComplete.get(myO.getName()); number.modelChanging(); myO.setNummer((myNameDTO == null) ? "" : myNameDTO.getNummer()); number.setModelObject(myO.getNummer()); number.modelChanged(); target.addComponent(number); } }); name.setOutputMarkupId(true); return name; } .... } //EO Form } -- Katherine. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org