Индикатор занятости ASP.NET - PullRequest
0 голосов
/ 08 сентября 2010

Есть ли способ на странице ASP.net (с AJAX) отображать некоторые индикаторы занятости (просто метка в порядке) при отключении некоторых кнопок (для предотвращения двойного щелчка), а затем выполнять работу.В конце работы метка меняется, чтобы указать новый статус.

Когда я пытался сделать это следующим образом: </p> <pre><code>Public Sub BtnEnvoyer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnEnvoyer.Click BtnEnvoyer.Enabled = False LblStatus.Visible = True LblStatus.ForeColor = Drawing.Color.ForestGreen LblStatus.Text = "Envoi en cours..." SendEmail() End Sub Private Sub EnvoyerCourriel() ' Do some work LblStatus.Text = "Done!" BtnEnvoyer.Enabled = True End Sub

Iпросто посмотрите результат dn, ничего промежуточного.Я не против использования javascript, чтобы заставить его работать, если это необходимо, или что-нибудь еще по этому поводу.

Ответы [ 4 ]

1 голос
/ 09 сентября 2010

Я задал очень похожий вопрос несколько недель назад: Управление пользовательскими кнопками ASP.NET - как переопределить OnClientClick, но сохранить существующее поведение?

Созданный мною класс можно перенести налюбая форма и будет препятствовать двойному щелчку.

По сути, я устанавливаю кнопку в положение «отключено», но ничто не мешает вам расширить это для вызова собственного клиентского кода.

Лучше всего отключить кнопку (как я сделал), а также показать скрытый DIV, который содержит анимированный GIF (изображение загрузки AJAX).

1 голос
/ 09 сентября 2010

Вы должны иметь возможность использовать jQuery, чтобы найти кнопки и отключить их. Когда я делал это в прошлом, я также изменил текст кнопки на «Пожалуйста, подождите ...». Я подключил клиент по клику в сочетании с обратной передачей кнопки.

Это прекрасно сработало, так как остановило повторное нажатие кнопки, а также дало пользователю немедленный визуальный отклик, что они успешно нажали кнопку.

Если вам нужен пример, я уверен, что смогу найти для вас код.

1 голос
/ 09 сентября 2010

Может оказаться полезным обсуждение этого вопроса:

Проблема двойного щелчка ASP.Net

Решение (я) имеют дело только с кнопкой, ноВы можете распространить эту идею на отключение большего количества DOM и показ скрытого div с вашим сообщением как часть функции щелчка клиента.

0 голосов
/ 09 сентября 2010

Если вы хотите, чтобы страница обновлялась до возвращения результата обратной передачи, вам придется использовать javascript, что-то вроде этого. Это общий подход, который вы, вероятно, должны адаптировать к тому, что вам нужно.

В вашем html:

<head>
  <script type="text/javascript">
    function ShowWait() {
      document.getElementById('labelspan').innerText = 'Loading...';
    }
  </script>
</head>

В настройках страницы:

BtnEnvoyer.OnClientClick = "ShowWait();";

Затем, когда нажата кнопка, ShowWait применит любые визуальные эффекты, которые вы хотите, пока выполняется обратная передача. Как только он будет готов, вся страница будет заменена результатами обратной передачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...