1

我有一个面板,我最初用另一个面板(一个旋转的圆圈说“正在加载”)替换它,一段时间后在 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 显示整个面板后没有立即看到。

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

编辑:我认为这可能是相关的:https ://issues.apache.org/jira/browse/WICKET-5107 。不过,我想知道我应该在代码中进行哪些更改才能使其正常工作?

4

1 回答 1

-1

IMO 看起来您应该使用 AjaxCallDecorator 来代替您尝试对微调器执行的操作。

于 2013-06-04T16:13:02.357 回答