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(真);' –