2010-09-08 3 views
0

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

Когда я попытался сделать это следующим образом:

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 

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

ответ

1

я задал очень похожий вопрос несколько недель назад: ASP.NET Custom Button Control - How to Override OnClientClick But Preserve Existing Behaviour?

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

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

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

1

Вы можете найти обсуждение по этому вопросу полезного:

ASP.Net double-click problem

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

1

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

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

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

0

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

В вашем HTML:

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

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

BtnEnvoyer.OnClientClick = "ShowWait();"; 

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

Смежные вопросы