页面标记
<div wicket:id="stepPanel" />
标签,当页面首次加载时,它的效果非常好
add(new MyFirstPanel("stepPanel"));
工作正常。但是当我触发Ajax事件并请求重绘
时addOrReplace(new MySecondPanel("stepPanel"));
target.add(MyPage.this);
我收到以下错误
Last cause: Failed to find markup file associated. MyFirstPanel: [MyFirstPanel [Component id = stepPanel]]
请注意,它会尝试找到错误的标记(应该为MySecondPanel查找标记)并且无论之前是否成功都会失败!
我使用反射实例化面板,但这可能是一个问题吗?没有例外。
Anwser: 实际上它是别的东西 - 我注意到我的一个AjaxSubmitLinks引用了一个不再放在标记中的表单......所以不管你做什么都记得不要留下那个引用。
答案 0 :(得分:1)
您在更换Panel后添加MyPage,导致MyPage重新渲染。 关于如何替换面板here有一个很好的例子。
答案 1 :(得分:0)
是的,您可以通过反射调用面板。我不清楚你在这里尝试做什么,但是如果你想要的话,可以用AjaxSelfUpdatingTimerBehavior
附上你的面板,并定义在给定时间内更新该组件的持续时间。
希望它有用。