2012-01-04 3 views
0

У меня есть сценарий автоматического обновления страницы калитки, но это базовая страница, и все страницы расширяют ее. Я не хочу обновлять все расширяющиеся страницы только на базовой странице.auto refresh on wicket page

прямо сейчас я использую HTML мета tag.It освежает все pages.Is можно обновить только базовую страницу

ответ

5

Если у вас есть

public class BasePage extends Page 

, а затем еще один

public class SubPage extends BasePage 

вы фактически не получаете их как отдельные части. Этот метод расширения класса (и разметки) существует только для того, чтобы сделать процесс более похожим на «объект» и «java». В конце концов, вся иерархия страниц объединена вместе с одной, обработанной страницей.

Теперь, если вы хотите обновить одну часть страницы, я предлагаю создать Panel и добавить AjaxSelfUpdatingTimerBehavior к этому компоненту. Это позволит вам автоматически обновлять любую часть (или несколько частей) страницы без повторной рендеринга всего объекта.

+0

Я добавил AjaxSelfUpdatingTimerBehavior в listview, но не работает и добавляет listview в панель, потому что мне нужно проверить статус страницы. – anu

+0

'ListViews' - ​​один из немногих компонентов, которые не могут быть обновлены через Ajax. Вместо этого поставьте стандартный «WebMarkupContainer» вокруг «ListView» и приложите к этому поведение. Кроме того, было бы полезно увидеть некоторый код. Очень хорошо, что обновление происходит, но вы не можете изменить данные в другом месте. – jbrookover

0

Прежде всего, я согласен с предложением @jbrookovers.

Однако, если вы действительно хотите, чтобы страница отверстия обновилась, почему бы не создать новый класс RefreshingBasePage? Затем просто переместите ваш <meta refresh....> в новый класс .html-файла. Просто вставьте обновление в голову с помощью элемента <wicket:head></wicket:head>.

Тогда вы можете оставить свои другие страницы бесплатно наследуемыми от BasePage без обновления, мешающего.