¿Cómo puedo abrir un diálogo modal en PageLoad()
, en el constructor del WebPage
y sin el AjaxRequestTarget
, con Wicket?Cómo abrir ModalDialog en PageLoad
9
A
Respuesta
11
no pude encontrar una manera de abrirla sin una petición Ajax, pero es perfectamente posible abrirlo cuando se carga la página, con un comportamiento muy simple:
HomePage.java
public class HomePage extends WebPage {
public HomePage(PageParameters pageParameters) {
super(pageParameters);
ModalWindow modal = new ModalWindow("modal");
modal.add(new OpenWindowOnLoadBehavior());
modal.setPageCreator(new ModalWindow.PageCreator() {
@Override
public Page createPage() {
return new RedirectPage("http://www.google.com");
}
});
add(modal);
}
}
OpenWindowOnLoadBehavior.java
public class OpenWindowOnLoadBehavior extends AbstractDefaultAjaxBehavior {
@Override
protected void respond(AjaxRequestTarget target) {
ModalWindow window = (ModalWindow) getComponent();
window.show(target);
}
@Override
public void renderHead(IHeaderResponse response) {
response.renderOnLoadJavascript(getCallbackScript().toString());
}
}
homepage.html
<html xmlns:wicket="http://wicket.apache.org">
<body>
<div wicket:id="modal"></div>
</body>
</html>
+0
¡Muchas gracias! – sonjafon
1
La apertura de una ventana modal de carga de la página (sin AJAX involucrado) se describe en Wicket Wiki
/**
* @author Ernesto Reinaldo Barreiro
*/
public class OpenOnLoadModalWindow extends ModalWindow implements IHeaderContributor {
private static final long serialVersionUID = 1L;
/**
* @param id
*/
public OpenOnLoadModalWindow(String id) {
super(id);
}
/**
* @param id
* @param model
*/
public OpenOnLoadModalWindow(String id, IModel<?> model) {
super(id, model);
}
/**
* Adds the JavaScript to initially open modal window.
*/
public void renderHead(IHeaderResponse response)
{
response.renderOnDomReadyJavascript(getWindowOpenJavascript());
}
/*
* (non-Javadoc)
* @see org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow#makeContentVisible()
*/
@Override
protected boolean makeContentVisible()
{
return true;
}
}
+0
Esto no funciona con Wicket 7.x – philonous
Cuestiones relacionadas
- 1. ¿Cuándo usar PreRender en PageLoad?
- 2. ReSharper sugerencia Load = pageLoad
- 3. jQuery document.ready vs pageLoad
- 4. Sys.Application.add_load() vs. $ (document) .ready() vs. pageLoad()
- 5. diferencia entre pageLoad, onload y $ (document) ready()
- 6. Ocultación de un elemento en pageLoad() con jQuery
- 7. ¿Cómo se determina si se ha llamado a un UIViewController como ModalDialog?
- 8. ¿Cómo abrir webview en Blackberry?
- 9. ¿Cómo saber cómo abrir?
- 10. Cómo abrir archivos apk
- 11. cómo abrir archivos * .sdf?
- 12. ¿Cómo abrir archivos VCE?
- 13. ¿Cómo abrir una carpeta?
- 14. Abrir en Explorer
- 15. Cómo abrir un archivo csv en Android
- 16. Cómo abrir Formulario en Agregar registro
- 17. ¿Cómo abrir un archivo en la memoria?
- 18. ¿Cómo puedo abrir archivos .obj en Blender?
- 19. ¿Cómo abrir un archivo .accdb en Ubuntu?
- 20. Cómo abrir el panel 'Proyectos' en Netbeans
- 21. Cómo ejecutar/abrir cualquier archivo en .NET
- 22. ¿Cómo abrir proyecto Non-Netbeans en Netbeans?
- 23. cómo abrir una url en python
- 24. ¿Cómo puedo abrir archivos en C#
- 25. Cómo abrir un SMS específico en android
- 26. cómo abrir un proyecto en Eclipse
- 27. ¿Cómo abrir el enlace en otro navegador?
- 28. ¿Cómo abrir un URL en una QTableView
- 29. ¿Cómo abrir el teclado automáticamente en UITextField?
- 30. cómo abrir una nueva pantalla en Android?
En portillo 6, se pueden añadir una '' 'AjaxEventBehavior''' a su página y abrir su modal dentro de la conducta. Ver http://stackoverflow.com/a/17243712/2345093 – user2345093