I made some further investigations. I do think there is a bug in wicket
1.4.14.
My Ajax-Request add's *two* targets which shall be rerenderd:
class MyLink extends AjaxLink<Void> {
...
public void onClick(AjaxRequestTarget target) {
... do Something and change visibilities ...
target.addComponent(component1);
target.addComponent(component2);
}
}
If the JavaScript-Reference belongs to component2 the Reference will
not be rendered.
If I switch the order of the two targetAddComponet-Statements the
Reference will be rendered.
Code-Analysis: The Ajax-Requests uses one HeaderResponse-Instance.
For each of the components the Method
AjaxRequestTarget#onComponentTagBody will
be called. After the first call onComponentTagBody will "close()" the
HeaderResponse-Instance.
Therefore the HeaderResponse-Instance rejects further Header-Contributions.
Benedikt Rothe
Am 15.07.2011 16:50, schrieb Benedikt Rothe:
Thank you for your good explanation.
I will have to reflect about your explanation first. May be I'll come
back :-)
Am 15.07.2011 11:12, schrieb Martin Grigorov:
Wicket calls renderHead() for each component added in the
AjaxRequestTarget.
Then for each call of IHeaderResponse.renderXYZ() Wicket checks
whether this is static resource and whether it is already rendered. If
it is not then it renders it. If it is non-static (e.g.
renderOnDomReady or renderOnLoad) then it is contributed every time
the component is re-rendered.
Better create a quickstart and attach it to Jira.
On Fri, Jul 15, 2011 at 11:39 AM, Benedikt
Rothe<[email protected]> wrote:
Check Ajax Debug panel for errors.
I did check the Ajax-Debug-Panel. No error.
Situation:
A Component has JavaScript-header-Contributors but is invisible.
Visibility is switched during an AjaxRequest.
What is Wicket's *supposed* to do?
a) JavaScript-header-Contributor shall be mentioned in the Page
although the
Component is Wicket-Invisible
b) JavaScript-header-Contributor shall be mentioned in
"header-contribution"-Section of the wicket-ajax-response
c) Wicket doesn't want to deal with a situation like this.
Am 15.07.2011 09:46, schrieb Martin Grigorov:
Check Ajax Debug panel for errors.
On Fri, Jul 15, 2011 at 10:35 AM, Benedikt
Rothe<[email protected]>
wrote:
When you say "my javascript is not loaded", do you mean it's not
added
to
the page or it's added but doesn't work?
It is not added to the page.
There's no script-tag.
Am 14.07.2011 14:15, schrieb Rodrigo Heffner:
When you say "my javascript is not loaded", do you mean it's not
added
to
the page or it's added but doesn't work?
On 14 Jul 2011 12:21, "Benedikt
Rothe"<[email protected]> wrote:
I have a problem with IHeaderContributor and invisible Components:
A Panel "MyPanel" implements IHeaderContributor.
The renderHead-Methods adds some JavaScript-References.
When the page is rendered this panel is invisible.
So these JavaScript-References are not loaded when the page is
loaded.
Later visibility is switched within an Ajax-Call and the MyPanel
will
be
rendered.
But than my JavaScript is not loaded.
Strange: During the Ajax-Call the renderHead-Method of MyPanel
is even
called, but
the call doesn't provoke anything concerning the output to the
browser.
Any suggestions?
Benedikt
---------------------------------------------------------------------
To unsubscribe, e-mail:[email protected]
For additional commands, e-mail:[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail:[email protected]
For additional commands, e-mail:[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail:[email protected]
For additional commands, e-mail:[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]