我有一個表單的頁面。使用表單中的數據,我從BBDD獲取信息,並使用Ajax顯示在面板中。Wicket:自動重新加載AjaxLazyLoadPanel
現在我試圖使用AjaxLazyLoadPanel,因爲BBDD中的一些查詢很重。我遇到的問題是在第一次加載AjaxLazyLoadPanel之後,我不知道如何用新內容重新加載(新搜索)。
有什麼建議?
謝謝!
我有一個表單的頁面。使用表單中的數據,我從BBDD獲取信息,並使用Ajax顯示在面板中。Wicket:自動重新加載AjaxLazyLoadPanel
現在我試圖使用AjaxLazyLoadPanel,因爲BBDD中的一些查詢很重。我遇到的問題是在第一次加載AjaxLazyLoadPanel之後,我不知道如何用新內容重新加載(新搜索)。
有什麼建議?
謝謝!
我還沒有AjaxLazyLoadPanel工作,但通用的辦法定期更新組件安裝一個AjaxSelfUpdatingTimerBehavior:
add(new AjaxLazyLoadPanel("myPanel"){
// implementation here
}
.setOutputMarkupId()
.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(2))));
或者,如果還是不行,在行爲不同的組件,讓AjaxRequestTarget add the AjaxLazyLoadPanel(您可能必須先附加AjaxLazyLoadPanel)。
以下是有關檢票口和AJAX的幾個相關鏈接:
這不是爲p與Ajax一起,它是關於圖像(指示「加載」的小輪),它顯示了第一次加載AjaxLazyLoadPanel。
我想我已經找到了解決辦法:
添加AjaxLazyLoadPanel在WebMarkupContainer,並在阿賈克斯按鈕刷新內容:
// lazy is the WebMarkupContainer
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
lazy.replace(new AjaxLazyLoadPanel("lazyLoadSearch") {
@Override
public Component getLazyLoadComponent(String id) {
return new SearchPanel(id, rep, searchString, typeOfSearch);
}
});
if (target != null) {
target.addComponent(lazy);
}
}
你應該接受自己的解決方案或問題將繼續顯示爲未答覆 – 2010-09-01 13:52:39