Калитка AjaxIndicatorAppender через панели - PullRequest
0 голосов
/ 09 октября 2018

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

Если я использую AjaxIndicatorAppender со слушателем на первой панели, все работает нормально, но если я использую его на панели 2, он ничего не делает.Любая помощь, как вызвать Ajax на панели 1 и показать индикатор Ajax на панели 2?Я заблудился.

На панели 1 (панель меню):

modal1.setWindowClosedCallback(new ModalWindow.WindowClosedCallback()
    {
        @Override
        public void onClose(AjaxRequestTarget target)
        {
            some code.....

            send(getPage(), Broadcast.DEPTH, new ContentUpdate(target));


            etc...

на панели 2 (панель содержимого)

@Override
public void onEvent(IEvent<?> event) {
super.onEvent(event);
if (event.getPayload() instanceof ContentUpdate) {
    AjaxRequestTarget target = ((ContentUpdate)event.getPayload()).getTarget();

            ContentSection section = new ContentSection("content0",contentView.getCustomSectionList().get(0));
            listItems.get("content0").replaceWith(section);
            listItems.get("pagingNavigator0").replaceWith(new PagingNavigator("pagingNavigator0", section.getDataView()));
            target.add(wmc);
}
}    

Как вызвать слушателя на панели 2?Спасибо

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Я исправил эту проблему.Моя родительская страница также может активировать IAjaxIndicatorAware.Я перемещаю этот интерфейс на свою родительскую страницу и вызываю IndicatorMarkupId со второй панели.

Спасибо за помощь:)

0 голосов
/ 09 октября 2018

AjaxLink должен реализовывать интерфейс IAjaxIndicatorAware, а #getAjaxIndicatorMarkupId() должен возвращать идентификатор разметки HTML-элемента с индикатором загрузки в Panel2.

Но таким образом вы бы связали Panel1 с Panel2.Так как вы используете механизм Wicket Event, я полагаю, вы пытаетесь не связывать их.Возможно, вам нужно показать индикатор загрузки всей страницы.

...