2012-01-04 65 views
0

我有自動刷新檢票頁面的場景,但它是基本頁面,所有頁面都在擴展它。我不想刷新所有隻擴展頁面的基本頁面。在檢票頁上自動刷新

現在我使用HTML元tag.It被刷新所有pages.Is有可能只刷新基頁

回答

5

當你有一個

public class BasePage extends Page 

,然後又

public class SubPage extends BasePage 

你實際上並沒有將它們作爲單獨的部分。這種擴展類(和標記)的方法只存在於使進程更像「對象」和「java」之類。最終,整個頁面層次結合在一起成爲一個單獨的呈現頁面。

現在,如果您希望刷新頁面的一個子部分,我建議創建Panel並將AjaxSelfUpdatingTimerBehavior添加到該組件。這會讓你自動刷新頁面的任何部分(或多個部分),而不需要重新渲染整個東西。

+0

我已經在列表視圖中添加了AjaxSelfUpdatingTimerBehavior,但無法正常工作並在面板中添加列表視圖,因爲我必須檢查頁面狀態。 – anu 2012-01-04 11:08:37

+0

'ListViews'是少數不能通過Ajax更新的組件之一。相反,圍繞「ListView」放置一個標準的'WebMarkupContainer',並將行爲附加到該列表上。另外,看到一些代碼會很有幫助。很可能是更新正在發生,但您無法在別處更改數據。 – jbrookover 2012-01-05 09:12:02

0

首先我同意@jbrookovers的建議。

但是,如果您確實想要刷新頁面,爲什麼不創建一個新類RefreshingBasePage?然後只需將您的<meta refresh....>移動到新的.html文件中。只需通過<wicket:head></wicket:head>元素將刷新插入頭部即可。

然後,您可以讓您的其他頁面免費繼承BasePage,而不會刷新妨礙。