Obrázek „Počkejte prosím“ při každé akci uživatele s ASP.NET 3.5

V naší aplikaci ASP.NET 3.5 bychom chtěli implementovat funkci „Čekejte prosím...“ :při každé akci uživatele (kliknutí na tlačítko, změna karty atd.) bychom v horní části stránky zobrazili malý číselník (ve skutečnosti v samostatný rámec, který používáme, již máme).

Napadlo nás toto řešení:

  1. „unést“ _doPostBack chcete-li zachytit každou událost, zobrazte obrázek číselníku a poté spusťte původní _doPostBack funkce
  2. zaregistrujte blok klientského skriptu v kódu ASP.NET, aby se obraz po skončení zpracování skryl

Moje otázka zní:Myslíte si, že je to dobré řešení? rozhodně to není moc elegantní, ale vypadá to docela efektivně. Existuje jiné řešení/vzor, ​​jak to udělat?

PS:nepoužíváme JQuery a používáme UpdatePanels

Odpověď

Protože již používáte UpdatePanels, stačí na stránku přidat ovládací prvek UpdateProgress a přiřadit jej k vašemu UpdatePanel.

To se automaticky zobrazí, když je iniciováno částečné zpětné odeslání zevnitř UpdatePanelu, a skryje se po dokončení požadavku.

Níže je příklad, stačí nasměrovat značku img na obrázek číselníku. Ovládací prvek můžete umístit tam, kde ho chcete zobrazit.

<asp:UpdateProgress runat="server" AssociatedUpdatePanelID="updatePanel1">
  <ProgressTemplate>
    <img src="./images/somespinner.gif" />Please wait...
  </ProgressTemplate>
</asp:UpdateProgress>