Калитка: Могу ли я использовать модальную панель с AjaxFallbackButton? - PullRequest
0 голосов
/ 05 февраля 2010

У меня 2 входа. Когда я нажимаю кнопку (AjaxFallbackButton), эти входы сохраняются в базе данных.

Если один из входов больше 10, когда я нажимаю кнопку, я хочу показать модальную панель, чтобы спросить пользователя, уверен ли он в его выборе. Но модальный компонент не появляется. Есть мысли?

 @Override
     public void onSubmit(AjaxRequestTarget target) {

  if (input < 10) { //save to database
} else {
         AskingDialogPanel panel = new AskingDialogPanel("content",
       new ResourceModel("asking.title"),
       new ResourceModel("asking.message")) {
      @Override
      public void onOkClick(AjaxRequestTarget target) {
       super.onOkClick(target);

                                                    //save to database
       modalWindow.close(target);
      }

      @Override
      public void onCancelClick(AjaxRequestTarget target) {

       super.onCancelClick(target);
       modalWindow.close(target);
      }
     };
                                    panel.setOutputMarkupId(true);
                target.addComponent(panel);
                modalWindow.setContent(panel);
                modalWindow.show(target);
}

1 Ответ

0 голосов
/ 05 февраля 2010

Ознакомьтесь с документацией для AjaxRequestTarget .

Компонент, разметка которого должна быть обновление должно быть добавлено к этой цели с помощью AjaxRequestTarget # addComponent (Компонент) метод. Его тело будет отображено и добавлен в конверт, когда цель обрабатывается и обновляется на сторона клиента, когда ответ Ajax получено.

Я не уверен, правильно ли я это помню (ранее у меня были проблемы с реализацией правильного поведения обновления), но я уверен, что вы могли бы addComponent компоненты, которые были ранее добавлены на страницу, но не отображены / невидимы , Затем они будут обновлены и / или их видимость будет переоценена.

Однако я могу ошибаться. Работает ли вышеперечисленное, если заменить AskingDialogPanel обычной меткой? (Просто чтобы убедиться, что я говорю не с того конца;))

...