#jquery #ajax #wicket
#jquery #ajax #wicket
Вопрос:
В моей форме у меня есть компонент ProgressBar из проекта Wiquery (http://code.google.com/p/wiquery /) и видимость ProgressBar в начале имеет значение false.
У меня также есть AjaxButton в форме, и мне нужно сделать несколько вещей в его методе onSubmit ():
- Во-первых, мне нужно показать ProgressBar, значение которого равно 0 (для параметра visible установите значение true).
- Во-вторых, мне нужно выполнить аннотацию страницы, что займет несколько секунд.
- Наконец, мне нужно обновить ProgressBar со значения 0 до значения 100 во время процесса аннотирования, и мне нужно скрыть компонент ProgressBar в конце процесса аннотирования.
Ниже приведен код, который мне нужно улучшить. Я также пытался использовать компонент UploadProgressBar, но появляется сообщение «Загрузка начинается …», в котором здесь нет необходимости. Есть ли способ изменить это сообщение?
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:
Проблема, с которой вы сталкиваетесь, заключается в том, что onSubmit
метод будет запущен до возврата клиенту, к этому времени вы установите индикатор выполнения на 100
.
Я не думаю, что индикатор выполнения — это то, что вам нужно для этого, нет шагов, на которых вы можете сказать, что это выполнено на x%. Он либо завершен, либо не завершен, как таковой, индикатор выполнения не может отображаться с прогрессом. Я бы посоветовал использовать индикатор ( AjaxIndicatorAppender
).
Надеюсь, это поможет.