有一个世界时钟的例子,例如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