0
我在我的Wicket 1.5应用程序的子面板上遇到了AjaxEventBehaviors
问题。会发生什么是这些子面板上的事件行为导致页面刷新。例如:Panel2
被添加到Panel1
。 Panel1
上的每个按钮都可以很好地工作,但不会在Panel2
(onEvent
从不被调用,只是页面刷新)。Wicket ajaxeventbehavior在子面板中导致页面刷新
守则上的按键事件的行为:
WebMarkupContainer test = new WebMarkupContainer("test");
test.add(new StatelessAjaxEventBehavior("onclick")
{
@Override
protected void onEvent(AjaxRequestTarget target)
{
LOG.info("I am clicked...");
if (callback != null)
{
callback.call(target);
}
}
@Override
protected PageParameters getPageParameters()
{
return getPage().getPageParameters();
}
});
是否有人知道为什么页面刷新,和同样重要的是,我该如何阻止它?
在此先感谢
UPDATE
谢谢你的反应。但是,它仍然不起作用。为了描述的情况比较好,我添加了一个可重复的路径:
- 添加面板页面
- 添加两个子板与所述面板,称为A和B,使默认
- 添加主面板上的按钮并使其更换一个对于B
- 添加一个按钮到B,并使其打印“你好”
- 按下按钮,页面刷新,而不需要的
onclick
/onevent
动作会发生。 - 原因:无状态页面上的按钮重建整个页面。这意味着默认设置将被重新加载。因此,即使在执行按钮B之前,A也被恢复。显然,这会产生错误,在Wicket中这些错误会导致页面刷新。将按钮放在无状态的子面板上似乎是不可能的。
试试 “点击”,而不是 “点击”,并设置'test.setOutputMarkupId(真);' –