Adding the call to that method seemed to solve the problem. The places you mentioned are the usual places to look for information. However I searched the list, read the wiki, checked the examples, and looked through some books. I also tried to google what I was trying to do.
It just seemed like this was a pretty common thing to do and I would have thought an answer would have been found much quicker. Do you recommend any books in particular. I have "Wicket in Action" and have ordered "Pro Wicket". Are there other books that I should be looking at? Thanks. Jeff -----Original Message----- From: Per Newgro [mailto:per.new...@gmx.ch] Sent: Wednesday, September 30, 2009 2:09 PM To: users@wicket.apache.org Subject: Re: RadioChoice and Ajax to display a panel of dropdowns Only a shot in the dark, but is typeBox.setOutputMarkupPlaceholderTag(true) helping? You could use it instead of setOutputMarkupId(true), because its done there to. Otherwise i would have to create a testcase for this situation. There are different places to get informations: - search this list - read the wiki - check the examples - read a wicket book (many good out there) It's all explained on the website. Or do you expect them elsewhere? Cheers Per > I did not override the method. I just did and it is still not > working. Here is what I have: > > Also, where would one find this type of information. I don't think the > online example show it and blindly guessing methods to look at in > javadoc doesn't seem efficient. > > HTML: > <tr> > <td><wicket:message key="userType">Type of > User:</wicket:message></td> > <td> > <span wicket:id="accountType"> > <input type="radio" />option 1 > </span> > </td> > </tr> > <tr> > <td></td> > <td><span wicket:id="typeBox">The type > box</span></td> > </tr> > > Code: > // Account Type sub box > final WebMarkupContainer typeBox = new > WebMarkupContainer("typeBox") { > > /* (non-Javadoc) > * @see > org.apache.wicket.Component#callOnBeforeRenderIfNotVisible() > */ > @Override > protected boolean > callOnBeforeRenderIfNotVisible() { > return true; > } > > }; > typeBox.setVisible(false); > typeBox.setOutputMarkupId(true); > add(typeBox); > > // Account Type Select > List accountTypes = accountTypeDao.findAll(); > ChoiceRenderer accountTypeChoiceRenderer = new > ChoiceRenderer("name", "code"); > RadioChoice accountTypeRadio = new > RadioChoice("accountType", accountTypes, accountTypeChoiceRenderer); > //accountTypeRadio.setRequired(true); > // add the on click to the radio button > accountTypeRadio.add(new > AjaxFormChoiceComponentUpdatingBehavior () { > private static final long serialVersionUID = 1L; > > @Override > protected void onUpdate(AjaxRequestTarget target) { > RadioChoice choice = (RadioChoice) > getComponent(); > choice.updateModel(); > > if (((AccountType) > choice.getModelObject()).getCode().equalsIgnoreCase("REP")) { > typeBox.setVisible(true); > } else { > typeBox.setVisible(false); > } > target.addComponent(typeBox); > } > }); > > add(accountTypeRadio); > > > -----Original Message----- > From: Per Newgro [mailto:per.new...@gmx.ch] > Sent: Wednesday, September 30, 2009 2:17 AM > To: users@wicket.apache.org > Subject: Re: RadioChoice and Ajax to display a panel of dropdowns > > Hey Jeff, > > did you override this? > > > /** > * Override this method if you want onBeforeRender to be called even > > when your component is not > * visible. default this returns false. > * > * @return boolean, if true then onBeforeRender is called even for > none visible components, > * default false. > * > * @see Component#onBeforeRender() > */ > protected boolean callOnBeforeRenderIfNotVisible() > { > return false; > } > > If you add a visible and an invisible panel you have to override this on > > the invisible one. > > hth > Cheers > Per > >> I want to create a list of radio buttons [I have that working] and an >> ajax event to fire whenever a radio button is clicked [I have this >> working]. If the radio button matches the one I am interested in then >> > I > >> want to display additional information that must be filled in. A >> > radio > >> button selection is required. >> >> >> >> I cannot get the additional information to display when I add the >> component back to the target. I think it is because the additional >> information is originally set to not visible so the output markup id >> > is > >> not written out. How would I go about doing this? It seems pretty >> standard. Do I need to use panels and swap the appropriate panel [1 - >> empty panel, 2 - panel with additional info] into the target when >> needed? That seems like a lot of code to do something fairly simple. >> >> >> >> My code is below. >> >> >> >> Thanks. >> >> >> >> Jeff >> >> >> >> ===================== >> >> >> >> HTML: >> >> <tr> >> >> <td><wicket:message key="userType">Type of >> User:</wicket:message></td> >> >> <td> >> >> <span wicket:id="accountType"> >> >> <input type="radio" />option 1 >> >> </span> >> >> </td> >> >> </tr> >> >> <tr> >> >> <td></td> >> >> <td><span wicket:id="typeBox">The additional >> information</span></td> >> >> </tr> >> >> >> >> Java Code: >> >> // Account Type sub box >> >> final WebMarkupContainer typeBox = new >> WebMarkupContainer("typeBox"); >> >> typeBox.setVisible(false); >> >> typeBox.setOutputMarkupId(true); >> >> add(typeBox); >> >> >> >> // Account Type Select >> >> List accountTypes = accountTypeDao.findAll(); >> >> ChoiceRenderer accountTypeChoiceRenderer = new >> ChoiceRenderer("name", "code"); >> >> RadioChoice accountTypeRadio = new >> RadioChoice("accountType", accountTypes, accountTypeChoiceRenderer); >> >> //accountTypeRadio.setRequired(true); // THIS >> SHOULD REALLY BE REQUIRED >> >> // add the on click to the radio button >> >> accountTypeRadio.add(new >> AjaxFormChoiceComponentUpdatingBehavior () { >> >> private static final long serialVersionUID = 1L; >> >> >> >> @Override >> >> protected void onUpdate(AjaxRequestTarget target) { >> > > >> RadioChoice choice = (RadioChoice) >> > getComponent(); > >> choice.updateModel(); >> >> >> >> if (((AccountType) >> choice.getModelObject()).getCode().equalsIgnoreCase("REP")) { >> >> typeBox.setVisible(true); >> >> } else { >> >> typeBox.setVisible(false); >> >> } >> >> target.addComponent(typeBox); >> >> } >> >> }); >> >> _______________________________________ >> >> Jeffrey A. Schneller >> >> >> >> Envisa >> >> End-to-End E-Commerce for the Multi-Channel Merchant >> >> >> >> 281 Pleasant Street >> >> Framingham, MA 01701 >> >> P: (508) 405-1220 x115 >> >> C: (508) 954-8044 >> >> F: (508) 405-1219 >> >> >> >> >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org