我正在使用8号检票口,希望得到一些帮助!我有一个包含多个字段的表单,第一个是文本,然后是三个下拉列表。下拉列表之一非常重,我将其包装在AjaxLazyLoadPanel中。
[呈现表单时,它显示了一个微调框,而不是繁琐的下拉菜单,加载时,我无法访问其他字段。例如,如果我尝试在文本字段中键入内容,则该页面似乎没有响应,并且在显示“沉重”下拉菜单后,我将立即看到我输入的所有文本。
这是应该表现的方式还是我错过了什么?我的下拉代码如下所示-
private Panel createLazyLoadPanel() {
return new AjaxLazyLoadPanel<Component>("panel") {
@Override
public Component getLazyLoadComponent(String markupId) {
Panel customPanel = new CustomPanel(markupId);
customPanel.add(heavyDropDownField);
return customPanel ;
}
};
}
谢谢!
这只是一个想法,但也许您需要在单独的线程中(例如,使用ExecutorService)对heavyDropDownField进行繁重的工作,并重写AjaxLazyLoadPanel#isContentReady来决定何时重载DreadDownField真正准备就绪。这样,您应该避免在加载面板时阻塞页面。