Hi , after a few try and errors , I can conclude how the problem occurs

In the ChildPanel , if my code is as follows :

<wicket:extend>
  <span wicket:id="selectDeselectGroup">

  </span>
  blah...
</wicket:extend>

and code :
RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
add(selectDeselectGroup);

Everything goes fine  , no matter the Child Panel is collapsed / expanded ,
page-reloading is OK

But , if I add something inside the CheckGroup :

<wicket:extend>
  <span wicket:id="selectDeselectGroup">
    <input type="radio" wicket:id="selectAll"/>select all
    <input type="radio" wicket:id="deselectAll"/>clean
  </span>
</wicket:extend>

and code :

RadioGroup selectDeselectGroup = new RadioGroup("selectDeselectGroup");
add(selectDeselectGroup);
Radio selectAll   = new Radio("selectAll"   , new Model(Boolean.FALSE));
Radio deselectAll = new Radio("deselectAll" , new Model(Boolean.FALSE));
selectDeselectGroup.add(selectAll);
selectDeselectGroup.add(deselectAll);

(Note , I haven't implement any AjaxEventBehavior("onclick") to the 2
radios)

Here comes the problem :
If the Child Panel is expanded , page reloading is OK.
But...
If the Child Panel is collapsed (folded /hidden) and do page reloading , it
will throw exception :


Root cause:

org.apache.wicket.WicketRuntimeException: The component(s) below failed to
render. A common problem is that you have added a component in code but
forgot to reference it in the markup (thus the component will never be
rendered).

1. [MarkupContainer [Component id = checkGroup, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:checkGroup.CheckGroup, isVisible = true, isVersioned =
false]]
2. [MarkupContainer [Component id = selectDeselectGroup, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:selectDeselectGroup.RadioGroup, isVisible = true,
isVersioned = false]]
3. [MarkupContainer [Component id = selectAll, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:selectDeselectGroup:selectAll.Radio, isVisible = true,
isVersioned = false]]
4. [MarkupContainer [Component id = deselectAll, page =
destiny.wicket.astrology.HoroscopePage, path =
3:selectPlanetsPanel:selectDeselectGroup:deselectAll.Radio, isVisible =
true, isVersioned = false]]

at org.apache.wicket.Page.checkRendering(Page.java:1116)
at org.apache.wicket.Page.renderPage(Page.java:914)

Reply via email to