You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Ronald Tetsuo Miura (JIRA)" <ji...@apache.org> on 2011/04/01 13:51:05 UTC
[jira] [Created] (WICKET-3584) Ajax re-render fails if a
instantiation listener calls setOutputMarkupId(true) on every component.
Ajax re-render fails if a instantiation listener calls setOutputMarkupId(true) on every component.
--------------------------------------------------------------------------------------------------
Key: WICKET-3584
URL: https://issues.apache.org/jira/browse/WICKET-3584
Project: Wicket
Issue Type: Bug
Components: wicket-core
Affects Versions: 1.4.17
Environment: Windows Vista, JDK 1.6_22, Eclipse Helios, Maven 3.0.x
Reporter: Ronald Tetsuo Miura
If you setup a IComponentInstantiationListener that calls setOutputMarkupId(true) to every component, the tags with the enclosure attribute don't get re-rendered on ajax requests, because the generated IDs from the HTML placeholder and the Ajax response don't match.
Code:
public class App extends WebApplication {
@Override
protected void init() {
addComponentInstantiationListener(new IComponentInstantiationListener() {
public void onInstantiation(Component component) {
component.setOutputMarkupId(true);
}
});
}
@Override
public Class<? extends Page> getHomePage() {
return HomePage.class;
}
}
public class HomePage extends WebPage {
public HomePage() {
final Label label = new Label("label", "VISIBLE!");
add(label.setVisible(false).setOutputMarkupId(true));
add(new AjaxLink<Void>("link") {
@Override
public void onClick(AjaxRequestTarget target) {
label.setVisible(!label.isVisible());
target.addComponent(label);
}
});
}
}
<html xmlns:wicket="http://wicket.apache.org">
<body>
<a wicket:id="link">Clique!</a>
<div wicket:enclosure="label">
<hr/>
<h1 wicket:id="label"></h1>
<hr/>
</div>
</body>
</html>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (WICKET-3584) Ajax re-render fails if a
instantiation listener calls setOutputMarkupId(true) on every component.
Posted by "Juergen Donnerstag (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WICKET-3584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13023532#comment-13023532 ]
Juergen Donnerstag commented on WICKET-3584:
--------------------------------------------
tested against 1.5 to check if error occurs as well => 1.5 seems to be ok.
> Ajax re-render fails if a instantiation listener calls setOutputMarkupId(true) on every component.
> --------------------------------------------------------------------------------------------------
>
> Key: WICKET-3584
> URL: https://issues.apache.org/jira/browse/WICKET-3584
> Project: Wicket
> Issue Type: Bug
> Components: wicket-core
> Affects Versions: 1.4.17
> Environment: Windows Vista, JDK 1.6_22, Eclipse Helios, Maven 3.0.x
> Reporter: Ronald Tetsuo Miura
>
> If you setup a IComponentInstantiationListener that calls setOutputMarkupId(true) to every component, the tags with the enclosure attribute don't get re-rendered on ajax requests, because the generated IDs from the HTML placeholder and the Ajax response don't match.
> Code:
> public class App extends WebApplication {
> @Override
> protected void init() {
> addComponentInstantiationListener(new IComponentInstantiationListener() {
> public void onInstantiation(Component component) {
> component.setOutputMarkupId(true);
> }
> });
> }
> @Override
> public Class<? extends Page> getHomePage() {
> return HomePage.class;
> }
> }
> public class HomePage extends WebPage {
> public HomePage() {
> final Label label = new Label("label", "VISIBLE!");
> add(label.setVisible(false).setOutputMarkupId(true));
> add(new AjaxLink<Void>("link") {
> @Override
> public void onClick(AjaxRequestTarget target) {
> label.setVisible(!label.isVisible());
> target.addComponent(label);
> }
> });
> }
> }
> <html xmlns:wicket="http://wicket.apache.org">
> <body>
> <a wicket:id="link">Clique!</a>
> <div wicket:enclosure="label">
> <hr/>
> <h1 wicket:id="label"></h1>
> <hr/>
> </div>
> </body>
> </html>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (WICKET-3584) Ajax re-render fails if a
instantiation listener calls setOutputMarkupId(true) on every component.
Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WICKET-3584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Vaynberg resolved WICKET-3584.
-----------------------------------
Resolution: Invalid
Assignee: Igor Vaynberg
since the labe is initially rendered invisible one must call setOuputMarkupPlaceHolderTag(true) instead of just setOutputMarkupId(true)
> Ajax re-render fails if a instantiation listener calls setOutputMarkupId(true) on every component.
> --------------------------------------------------------------------------------------------------
>
> Key: WICKET-3584
> URL: https://issues.apache.org/jira/browse/WICKET-3584
> Project: Wicket
> Issue Type: Bug
> Components: wicket-core
> Affects Versions: 1.4.17
> Environment: Windows Vista, JDK 1.6_22, Eclipse Helios, Maven 3.0.x
> Reporter: Ronald Tetsuo Miura
> Assignee: Igor Vaynberg
>
> If you setup a IComponentInstantiationListener that calls setOutputMarkupId(true) to every component, the tags with the enclosure attribute don't get re-rendered on ajax requests, because the generated IDs from the HTML placeholder and the Ajax response don't match.
> Code:
> public class App extends WebApplication {
> @Override
> protected void init() {
> addComponentInstantiationListener(new IComponentInstantiationListener() {
> public void onInstantiation(Component component) {
> component.setOutputMarkupId(true);
> }
> });
> }
> @Override
> public Class<? extends Page> getHomePage() {
> return HomePage.class;
> }
> }
> public class HomePage extends WebPage {
> public HomePage() {
> final Label label = new Label("label", "VISIBLE!");
> add(label.setVisible(false).setOutputMarkupId(true));
> add(new AjaxLink<Void>("link") {
> @Override
> public void onClick(AjaxRequestTarget target) {
> label.setVisible(!label.isVisible());
> target.addComponent(label);
> }
> });
> }
> }
> <html xmlns:wicket="http://wicket.apache.org">
> <body>
> <a wicket:id="link">Clique!</a>
> <div wicket:enclosure="label">
> <hr/>
> <h1 wicket:id="label"></h1>
> <hr/>
> </div>
> </body>
> </html>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira