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

Reply via email to