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í:
- „unést“
_doPostBack
chcete-li zachytit každou událost, zobrazte obrázek číselníku a poté spusťte původní_doPostBack
funkce - 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>