i dont think we can support transparent resolvers as ajax targets

-igor


On Fri, Apr 11, 2008 at 10:00 AM, Meetesh Karia <[EMAIL PROTECTED]> wrote:
> Hi all,
>
>  We're seeing an issue with ajax and isTransparentResolver set to return
> true and I'm wondering if this is something we're doing wrong or if it's an
> oversight.  Here's an example:
>
>  add(new WebMarkupContainer("toUpdate") {
>    @Override
>    public boolean isTransparentResolver() {
>        return true;
>    }
>  });
>
>  add(new WebMarkupContainer("myChild"));
>
>  with html like this:
>
>  <div wicket:id="toUpdate">
>    <div wicket:id="myChild">
>    ...
>    </div>
>  </div>
>
>  When a user clicks on an ajax link (which is a "child" of toUpdate and
> added in the same manner as myChild), toUpdate is added to the target to be
> rendered.
>
>  Now, because toUpdate doesn't have any real children, it doesn't mark any
> of them as rendering in MarkupContainer.internalMarkRendering().  However,
> Component.render(MarkupStream) does mark all of the children as rendering
> because it calls markRendering() itself.  When the rendering is finished,
> MarkupContainer.onAfterRenderChildren() is called but only the toUpdate
> container has it's rendering flag set to false and the child rendering flags
> remain set to true.  If there's now another ajax click within that same
> container which modifies the visibility of a component, an exception will be
> thrown indicating that a hierarchy change can't occur while rendering.
>
>  Are we using isTransparentResolver() incorrectly?
>
>  Thanks,
>  Meetesh
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to