Wicket 预紧器在导叶中的应用

Wicket 预紧器在导叶中的应用,wicket,ajax-request,Wicket,Ajax Request,在wicket应用程序的搜索事件中,将结果显示为一个长数据需要几秒钟甚至几分钟。我想在从数据库获取数据时显示一个预加载程序,以便用户在单击“搜索”时知道发生了什么。我对wicket应用程序非常陌生,不太了解,但我找到了AjaxlazyPreload,但正如我所说,我想在调用搜索方法时显示预加载程序…我正在共享SearchSubmit方法 private void processSearchSubmit(AjaxRequestTarget ajaxRequestTarget) {

在wicket应用程序的搜索事件中,将结果显示为一个长数据需要几秒钟甚至几分钟。我想在从数据库获取数据时显示一个预加载程序,以便用户在单击“搜索”时知道发生了什么。我对wicket应用程序非常陌生,不太了解,但我找到了AjaxlazyPreload,但正如我所说,我想在调用搜索方法时显示预加载程序…我正在共享SearchSubmit方法

private void processSearchSubmit(AjaxRequestTarget ajaxRequestTarget) {

        ajaxRequestTarget.add(tableHolder);
        ajaxRequestTarget.add(productTableHolder);
        if (zipcode == null) {
            ajaxRequestTarget
                    .appendJavaScript("$().toastmessage('showWarningToast','Please enter a zipcode')");
        } else if (!ZipCodeValidator.isValid(zipcode)) {
            useZones = true;
            currentZone = zipcode;
            ajaxRequestTarget.add(tableHolder);
            if (searchProduct != null) {
                ajaxRequestTarget.add(productTableHolder);
                if (lstProduct.getList().size() == 0) {
                    ajaxRequestTarget
                            .appendJavaScript("$().toastmessage('showErrorToast','Sorry! This product is not avialable .')");
                }
            }


        } else if (lstMerchants.getList().size() == 0) {
            ajaxRequestTarget
                    .appendJavaScript("$().toastmessage('showWarningToast','Sorry! There are currently no services')");
        }

        if (ZipCodeValidator.isValid(zipcode)) {
            ajaxRequestTarget.add(tableHolder);
            if (searchProduct != null && !searchProduct.equals("")) {
                ajaxRequestTarget.add(productTableHolder);
                if (lstProduct.getList().size() == 0) {
                    ajaxRequestTarget
                            .appendJavaScript("$().toastmessage('showErrorToast','Sorry! This product is not avialable in this zip code or zone.')");
                }
            }
        }
    }

我希望当调用此方法直到它获取结果数据时,它应该显示预加载程序或微调器。有人能建议怎么做吗?

如果您需要通过单击“检查答案”按钮调用长执行方法。
您也可以使用AjaxLazyLoadPanel,选中(它的和)

或者使用AjaxLazyLoadPanel或者指示链接/-按钮。无论是在普通调用还是Ajax调用中,这两种方法都可以很好地工作

要使用AjaxLazyLoadPanel:创建AjaxLazyLoadPanel的子类,用于加载要显示的面板并将其添加到AjaxRequest


IndicatingAjaxLinks在处理请求时只显示一个微调器,可以直接在当前应用程序中使用。使用此按钮/链接,而不是您现在用于formsubmits的按钮/链接。

可能不是重复的,但与之密切相关:@Nicktar您完全正确,这与此相关。我后来在发布问题后发现了该链接,我找到了我的答案,非常感谢您的回复,我知道该部分和链接,但我认为我不能在ajax调用中使用它,最好更改自动显示微调器的按钮类型。