我在Wicket 1.5应用程序的子面板上遇到AjaxEventBehaviors
的麻烦。会发生什么是这些子面板上的事件行为导致页面刷新。
示例:Panel2
已添加到Panel1
。
Panel1
上的每个按钮都可以正常工作,但Panel2
上没有按钮(onEvent
永远不会被调用,只是页面刷新)。
按钮上的事件行为代码:
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
谢谢你的反应。但是,它仍然无效。为了更好地描述这种情况,我添加了一个可重现的路径:
onclick
/ onevent
操作。答案 0 :(得分:0)
您可以在生成事件的组件中使用此代码的代码,无论它在何处附加(在您的案例按钮中)
this.send(getPage(), Broadcast.DEPTH, "onClick");
接收活动的页面或组件
public void onEvent(IEvent<?> event) {
IEventSource source = event.getSource();
Component sourceComponent = (Component) source;
String componentId = sourceComponent.getId();
LOG.debug("Component id is " + componentId);
if ((componentId == "homeLink")
|| (componentId == "cancelLink")
|| (componentId == "logoutLink"))
LOG.debug("EVENT TRIGERRED...!");
}
希望这也有助于你:)