通过AJAX请求交换Wicket Panel时不会刷新

时间:2013-06-04 09:20:36

标签: ajax wicket

我有一个Panel,我最初用另一个面板替换(旋转圈说“加载”),并在AJAX事件中替换回来。所以我所做的是:

@Override
protected void onConfigure() {
    if (!content.isLoaded()) {
        tmp = new LoadingCircle(getId(), "Loading...");
        this.replaceWith(tmp);
    }
}

public void onLoaded(AjaxRequestTarget target) {
    if (tmp != null) {
        tmp.replaceWith(this);
        tmp = null;
    }
    target.add(this);
}

这样可行,因此面板显示在页面中。但是,此面板有一些带有一些标签的子面板,它们不会刷新。我在重新加载页面时看到更新的标签,但在用AJAX显示整个面板后没有立即看到。

我注意到onConfigureonBeforeRender方法只被调用一次 - 当创建面板时,但是当它第一次使用AJAX实际显示时不再被调用。子面板也是如此,这样可以解释为什么它们不会刷新。但问题是 - 当将面板添加到AJAX请求目标时,为什么不刷新面板(未使用更新的模型值)?

编辑:我认为这可能是相关的:https://issues.apache.org/jira/browse/WICKET-5107。不过,我想知道我的代码应该改变什么才能使它工作?

1 个答案:

答案 0 :(得分:-1)

IMO看起来你应该使用AjaxCallDecorator来做你想要用微调器做的事情。