Калитка: сбой при открытии ModalWindow (всплывающее окно)

В панели калитки я реализовал метод showAttentiePopup(AjaxRequestTarget), который показывает всплывающее окно ModalWindow. Этот метод отлично работает, когда я вызываю его из той же панели. Но когда я пытаюсь вызвать метод из другой панели, он вылетает со следующей ошибкой:

java.lang.IllegalStateException: No Page found for component [MarkupContainer [Component id = createAttentie]]
 at org.apache.wicket.Component.getPage(Component.java:1665)
 at org.apache.wicket.RequestCycle.urlFor(RequestCycle.java:851)
 at org.apache.wicket.Component.urlFor(Component.java:3170)
 at org.apache.wicket.behavior.AbstractAjaxBehavior.getCallbackUrl(AbstractAjaxBehavior.java:123)
 at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.getCallbackScript(AbstractDefaultAjaxBehavior.java:116)
 at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.getCallbackScript(AbstractDefaultAjaxBehavior.java:104)
 at org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow$CloseButtonBehavior.getCallbackScript(ModalWindow.java:876)
 at org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.getWindowOpenJavascript(ModalWindow.java:1005)
 at org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.show(ModalWindow.java:286)
 at nl.topicuszorg.fks.web.client.dossier.overzichten.documenten.AttentieOverzichtPanel.showAttentiePopup(AttentieOverzichtPanel.java:171)
 at nl.topicuszorg.fks.web.client.dossier.overzichten.documenten.EditFileDocumentPanel$2.onSubmit(EditFileDocumentPanel.java:195)
 at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:94)
 at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:128)
 at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:163)
 at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:297)

Кто-то знает, в чем может быть проблема?

Метод showAttentiePopup:

   public void showAttentiePopup(AjaxRequestTarget target) {
         Component content = new EditAttentiePanel(createAttentie.getContentId(), new Attentie(), EditFunctie.AANMAKEN) {

                /** */
                private static final long serialVersionUID = 1L;

                @Override
                protected void annuleren(AjaxRequestTarget target) {

                       FKSModalWindow.closeCurrentWindow(target);
                }

                @Override
                protected void opslaan(AjaxRequestTarget target, Attentie attentie) {
                       //Inhoud even weggelaten
                }

         };

         createAttentie.setOutputMarkupId(true);
         createAttentie.setInitialWidth(900);
         createAttentie.setInitialHeight(450);
         createAttentie.setTitle("Nieuwe Attentie Aanmaken");
         createAttentie.setContent(content);
         createAttentie.show(target);      
   }

Привет, Рик


person Rick    schedule 11.03.2010    source источник


Ответы (1)


Ваша трассировка стека указывает, что ModalWindow createAttentie не является частью страницы в то время, когда ваш код пытается ее отобразить.

Проследите логику построения страницы и структуру компонентов и убедитесь, что все правильно соединено.

person Don Roby    schedule 12.03.2010