0

在搜索事件的检票口应用程序中,需要几秒钟甚至几分钟的时间才能将结果显示为长数据。我想在从数据库中获取数据时显示一个预加载器,以让用户在单击 search 时知道正在发生的事情。我对 wicket 应用程序很陌生,不太了解这些东西,但我发现 AjaxLazyPreloader 但正如我所说,我想在调用搜索方法时显示预加载器......我正在分享 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.')");
                }
            }
        }
    }

我想当这个方法被调用直到它获取结果数据的时候,它应该显示一个预加载器或微调器。任何人都可以建议如何做到这一点.??

4

2 回答 2

0

使用 AjaxLazyLoadPanel 或 IndicatingAjaxLink/-Button。两者都可以在正常调用或 Ajax 调用中正常工作。

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

IndicatingAjaxLinks 仅在处理请求时显示一个微调器,并且可以在您当前的应用程序中直接使用。使用它而不是您现在用于表单提交的按钮/链接。

于 2013-05-07T07:13:14.967 回答
0

如果您需要通过单击按钮调用长执行方法,请检查答案。您也可以使用 AjaxLazyLoadPanel,查看这个演示(它是Java 部分html 部分

于 2013-04-25T08:34:18.610 回答