/ / wyłącz / włącz przyciski - c #, asp.net

wyłącz / włącz przyciski - c #, asp.net

Pracuję w ASP .Net. Muszę mieć możliwość kliknięcia przycisku, wyłączenia go, włączenia kodu i uruchomienia niektórych funkcji, a po zakończeniu ponownego włączenia przycisku. W tym projekcie nie ma żadnego postbacku, ponieważ używamy UpdatePanel. O ile udało mi się z powodzeniem użyć tej składni do wyłączenia jej w kodzie za funkcją Page_Load:

btnConnect.Attributes.Add("onClick", "document.body.style.cursor = "wait";this.disabled = true;" + ClientScript.GetPostBackEventReference(btnConnect, string.Empty) + ";");

To wyłącza przycisk i zezwala na kodza wykonaniem. Po prostu nie mogę dowiedzieć się, jak ponownie włączyć przycisk, gdy funkcje uruchomione w kodzie są już gotowe. Czy istnieje sposób na przechwycenie, gdy kod się kończy?

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć limitu czasu po wyłączeniu:

var that = this; //pointer to button
window.setTimeout(function() { document.body.style.cursor = "";that.disabled = false; }, 1000);

Takie podejście może być również przydatne, aby zapobiec podwójnemu zwrotowi.

Albo panel aktualizacji kończy działanie, uruchamiając zdarzenie Sys.WebForms.PageRequestManager.endRequest. Dodaj moduł obsługi zdarzeń, aby ponownie włączyć przycisk w innym miejscu.


1 dla odpowiedzi nr 2

Czy potrafisz zamiast tego używać jQuery? Rozważ taki przepływ:

  • po kliknięciu wyłącz przycisk
  • wywołaj / POST na adres URL ASP.NET, jeśli to konieczne
  • włącz ponownie przycisk po powrocie połączenia URL. Aktualizuj elementy strony, przekierowanie, alert w razie potrzeby.

0 dla odpowiedzi № 3

Oprócz powyższego ...

Tak, używasz UpdatePanel, ale występuje postBack.

Tak więc w zdarzeniu przycisku przesyłania po udanymprzetwarzanie zostało zakończone, usuń atrybut onClick, który dodałeś powyżej, czy próbowałeś włączyć przycisk w kodzie, a następnie wydać Update () na UpdatePanel?