So far it seems to work. Thank you Clint
On Fri, Jul 22, 2011 at 12:55 PM, Rodrigo Heffner <rodrigo.heff...@gmail.com> wrote: > Hi Clint, > > Thank you very much for your (quick) response. > > I had the (maybe incorrect) idea that AjaxEventBehavior's > target.addComponent(aComponent) would only make aComponent refresh > itself through AJAX (and not store new changed values on it's model). > > I also thought that the AjaxFormComponentUpdatingBehavior's > target.addComponent(aComponent) would make the opposite: save > aComponent's model without a form submission (thorugh AJAX) but > without refreshing anything. > > I'll apply your changes and check if, "onchange", new values are > stored in the dropdown's model and it's parent is refreshed to show > the changes. > > Thanks > > On Fri, Jul 22, 2011 at 12:39 PM, Clint Checketts <checke...@gmail.com> wrote: >> Why not put everything in the AjaxFormComponentUpdatingBehavior? >> >> As in: >> >> dropDownChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") >> { >> >> @Override >> protected void onUpdate(AjaxRequestTarget target) { >> LOG.debug("New updated value: " + >> this.getComponent().getDefaultModelObjectAsString()); >> target.addComponent(this.getComponent()); >> * >> //This code was in the AjaxEventBehavior before >> LOG.debug("DroDownChoice's parent " + >> IntegrityLevelDropDownPanel.* >> *this.getParent().getParent().**getParent()); >> >> target.addComponent(* *IntegrityLevelDropDownPanel.** >> this.getParent().getParent().**getParent());* >> >> } >> >> }); >> >> >> On Fri, Jul 22, 2011 at 6:32 AM, Rodrigo Heffner >> <rodrigo.heff...@gmail.com>wrote: >> >>> Hi guys, >>> >>> I'm very new to Wicket, and I came across this: >>> >>> What I want to do: >>> - I have a DropDownChoice component and I'd like to update it's model >>> when it changes through AJAX. Also, I want to refresh (repaint, >>> reload) this dropdown's parent when a value is changed, also though >>> AJAX. >>> >>> My approach: >>> - Adding an AjaxEventBehavior("onchange") AND an >>> AjaxFormComponentUpdatingBehavior("onchange"). Here's the code: >>> >>> dropDownChoice.add(new AjaxEventBehavior("onchange") { >>> >>> protected void onEvent(AjaxRequestTarget target) { >>> LOG.debug("DroDownChoice's parent " + >>> IntegrityLevelDropDownPanel.this.getParent().getParent().getParent()); >>> >>> >>> target.addComponent(IntegrityLevelDropDownPanel.this.getParent().getParent().getParent()); >>> } >>> }); >>> >>> dropDownChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") >>> { >>> >>> @Override >>> protected void onUpdate(AjaxRequestTarget target) { >>> LOG.debug("New updated value: " + >>> this.getComponent().getDefaultModelObjectAsString()); >>> target.addComponent(this.getComponent()); >>> } >>> >>> }); >>> >>> The Problem: >>> - Unfortunately both "onchange" events don't work together. Depending >>> on the order of my code, the AjaxFormComponentUpdatingBehavior or the >>> AjaxEventBehavior are executed, but not both. >>> >>> I've changed one of them to happen "onblur" and then they're both >>> executed, but this is not a solution to my issue. >>> >>> Does anybody have any tips for this? I've been searching for a while >>> but couldn't find anything that solves this. >>> >>> >>> Thank you in advance, >>> >>> -- >>> Rodrigo H M Bezerra >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> > > > > -- > Rodrigo H M Bezerra > -- Rodrigo H M Bezerra --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org