Wicket:如何在Ajax响应期间将ProgressBar组件的可见性更改两次

时间:2011-05-17 22:54:23

标签: jquery ajax wicket

在我的表单中,我有一个来自Wiquery项目的ProgessBar组件(http://code.google.com/p/wiquery/),并且ProgressBar的visible在开头设置为false。

我也在表单上有AjaxButton,我需要在他的onSubmit()方法中做一些事情:

  1. 首先,我需要显示ProgressBar,其值设置为0(设置为true可见)。
  2. 其次,我需要执行页面的注释,这需要几秒钟。
  3. 最后,我需要在注释过程中将ProgressBar从值0更新为值100,我需要在注释过程结束时隐藏ProgressBar组件。
  4. Bellow是我需要改进的代码。我也试过使用UploadProgressBar组件,但是这里没有必要的消息“Upload starting ...”。有没有办法改变这个消息?

    progressBar = new ProgressBar("progress");
    progressBar.setValue(0);
    progressBar.setOutputMarkupId(true);
    progressBar.setVisible(false);
    form.add(progressBar);
    
    
    semAnnButton = new AjaxButton("semAnnButton"){
    
            private static final long serialVersionUID = 1L;
    
            @Override
            protected void onSubmit(AjaxRequestTarget target,
                    Form<?> form) {
    
                progressBar.setVisible(true);
                target.addComponent(progressBar);
                performAnnotation(webPageURL);
                progressBar.increment(target, 100);
    
    
            }};
        semAnnButton.setOutputMarkupId(true);
        semAnnButton.setOutputMarkupPlaceholderTag(true);
        semAnnButton.setVisible(true);
        form.add(semAnnButton);
    

1 个答案:

答案 0 :(得分:0)

您遇到的问题是onSubmit方法会在返回客户端之前运行,此时您将进度条设置为100

我认为进度条不是你想要的,你没有步骤可以说这是x%完成。它是完整的还是不完整的,因此进度条无法显示进度。我建议使用指标(AjaxIndicatorAppender)。

希望这有帮助。