Come posso aprire una finestra di dialogo modale su PageLoad()
, nel costruttore di WebPage
e senza il AjaxRequestTarget
, con Wicket?Come aprire ModalDialog su PageLoad
9
A
risposta
11
non riuscivo a trovare un modo per aprire senza una richiesta Ajax, ma è perfettamente possibile aprirlo quando la pagina viene caricata, con un semplice comportamento:
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
Grazie mille! – sonjafon
1
Apertura di una finestra modale al caricamento della pagina (senza AJAX coinvolto) descritto nel 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
Questo non funziona con Wicket 7.x – philonous
Problemi correlati
- 1. History.js getState() a pageload
- 2. jQuery document.ready vs Pageload
- 3. jQuery Mobile - scorrere fino a div specifico su pageload
- 4. ReSharper suggerimento Page Load = PageLoad
- 5. Come gestire ModalDialog usando il webdriver al selenio?
- 6. differenza tra Pageload, onload & $ (document) .ready()
- 7. ASP.Net AJAX multiple pageLoad funzioni possibili?
- 8. Sys.Application.add_load() vs. $ (document) .ready() vs. pageLoad()
- 9. Come aprire più richieste pull su GitHub
- 10. Come aprire automaticamente la tastiera su UITextField?
- 11. Come aprire alcune porte su Ubuntu?
- 12. modalDialog con direttiva in angolare, problema di ambito
- 13. Jquery - Focus su un campo di input in un modulo sul pageload?
- 14. Come aprire più terminali?
- 15. Come aprire automaticamente un popup CSS-only al caricamento della pagina/utilizzando Javascript?
- 16. Aprire la risposta su una nuova finestra
- 17. Aprire una porta HTTP su Amazon EC2
- 18. Impossibile aprire il display su RHEL
- 19. Come posso aprire un file remoto su HTTP con Emacs?
- 20. NSUserNotification - Come aprire l'app quando si fa clic su
- 21. Come aprire Windows Explorer quando faccio clic su un pulsante?
- 22. Come posso aprire file UTF-16 su Python 2.x?
- 23. come aprire un altro frammento su recyclerview OnClick
- 24. come fare clic automaticamente su "vuoi aprire o salvare?"
- 25. Come aprire l'immagine PIL in Tkinter su tela
- 26. Come aprire gli strumenti di sviluppo nell'emulatore iOS su Browserstack?
- 27. Come aprire l'applicazione di posta preferita dell'utente su Linux?
- 28. Progetti non riescono ad aprire su Intellij
- 29. Come aprire file apk
- 30. Come aprire GameCenter in tvOS
In wicket 6 è possibile aggiungere un '' AjaxEventBehavior''' alla tua pagina 'e aprire la modale all'interno del comportamento. Vedi http://stackoverflow.com/a/17243712/2345093 – user2345093