Wicket:AjaxLazyLoadPanel形式

问题描述 投票:0回答:1

我正在使用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 ;
        }

    };
}

谢谢!

ajax wicket
1个回答
0
投票

这只是一个想法,但也许您需要在单独的线程中(例如,使用ExecutorService)对heavyDropDownField进行繁重的工作,并重写AjaxLazyLoadPanel#isContentReady来决定何时重载DreadDownField真正准备就绪。这样,您应该避免在加载面板时阻塞页面。

© www.soinside.com 2019 - 2024. All rights reserved.