有一個世界時鐘的例子,例如wicket-example http://www.wicket-library.com/wicket-examples/ajax/world-clock?0。Wicket - 使用ajax計時器更新listview內的項目
我試過一樣,但在列表視圖內。
final DataView<LongRunningTask> dataView = new DataView<LongRunningTask>("sorting", adp) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final Item<LongRunningTask> item) {
...
final Label clock = new Label("timer", getCounter().getObject());
item.add(clock);
clock.setOutputMarkupId(true);
add(new AbstractAjaxTimerBehavior(Duration.seconds(1)) {
@Override
protected void onTimer(AjaxRequestTarget target) {
target.add(clock);
}
});
...
}
}
};
但這不起作用。如果我做
add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(1)));
裏面的頁面本身,然後它的作品。但我不想每秒刷新頁面,我只想刷新listView中的一個項目(時鐘)。
任何機會我可以如何使這項工作?
我試過了,但沒有運氣。我會再試一次:) – 2013-02-20 01:26:28
@Dave我覺得我找到了罪魁禍首。看我的編輯。 – Nicktar 2013-02-20 08:49:42
其實它的task.getCounter()其中任務是另一個Java類...和task.getCounter().getObject()返回一個字符串...因爲第二個參數的時鐘標籤應該是一個字符串... – 2013-02-20 14:12:26