【问题标题】:Wicket: AjaxLazyLoadPanel in formWicket:表单中的 AjaxLazyLoadPanel
【发布时间】:2020-04-05 10:44:55
【问题描述】:

我正在使用 wicket 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】:

    这只是一个想法,但也许您需要在一个单独的线程(例如使用 ExecutorService)中执行 HeavyDropDownField 的繁重工作,并覆盖 AjaxLazyLoadPanel#isContentReady 以决定何时实际准备好 heavyDropDownField。这样,您应该避免在面板加载时阻止您的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多