2012-01-04 67 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,而不会刷新妨碍。