Hello,

I encountered a problem with hiding/showing components with ajax. If a
component is initially not visible according to the isVisible() method, it
is not rendered on the page. But if it becomes visible as an effect of
ajax request and I try to update it on the client by adding the component
to AjaxRequesTarget it will still not be shown.

I think that the problem is caused by the fact that if component is not
initially visible nothing, even a placeholder for the component is not
rendered to the client. So when ajax response that tries to replace the
component in DOM tree is executed on the client, it can not find any
component with the markup id and therefore can not replace some node that
does not exist.

There are multiple quite easy workarounds for this hiding problem. For
example using CSS visibility attribute (quite ugly), or placing the
component you are willing to hide and show in a markup container that is
always rendered and sending back update of this markup container in ajax
request instead of the contained component.

But I somehow think that it is quite peculiar that one needs to find
workarounds for this kind of trivial-looking task. I did not create bug
(or improvement request) yet because I want to know what others think
about this and I'm quite new to the framework so I might be doing
something wrong.

If it is necessary to make improvements to framework to fix this, how
about adding placeholders in HTML for non-rendered components. Instead of
not rendering anything at all, empty div or span with necessary markup id
could be rendered.

Thanks,

-Mika


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

Reply via email to