Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

UpdatePanel, Trigger et UpdateProgress

Aujourd'hui je me suis retrouvé face à ce scénario :

<%@ Page Language="C#" %> <script runat="server"> protected void sleep(object sender, EventArgs e) { System.Threading.Thread.Sleep(5000); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <%= DateTime.Now %> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" /> </Triggers> </asp:UpdatePanel> <asp:Button ID="Button1" runat="server" Text="Click Me!" OnClick="sleep" /> <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> <ProgressTemplate> Working... </ProgressTemplate> </asp:UpdateProgress> </form> </body> </html>

Rien d'extraordinaire pour les personnes ayant déjà utilisé Atlas : je rafraichis un UpdatePanel sur le click d'un bouton à l'aide d'un trigger. Comme l'action sur le click est un peu longue, je rajoute un UpdateProgress pour indiquer à l'utilisateur que quelque chose est en train de se passer. Mais surprise, ce code très simpliste ne fonctionne pas ! Je n'avais malheureusement pas le temps de regarder en détail pourquoi j'ai décidé de me passer de l'UpdateProgress en attendant que je revienne sur ce problème ...

Ce soir, en lisant mes blogs quotidiens, je suis tombé sur un billet de Steve Marx : Why the UpdateProgress won't display qui explique exactement le problème que j'ai rencontré. Si vous voulez une explication du problème lisez ce qu'il a écrit ! En gros cela vient du fonctionnement de l'UpdateProgress, lors d'un AsyncPostback, les updateprogress regardent quel est le contrôle qui a déclenché cet AsyncPostback et si le nœud DOM du contrôle est un enfant de l'UpdatePanel alors l'UpdateProgress se lance.

Il nous donne aussi un WorkAround pour nous permettre d'afficher un UpdateProgress avec un trigger :

<script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function (sender, args) { if (args.get_postBackElement().id == '<%= Button1.ClientID %>') { $find('<%= UpdateProgress1.ClientID %>').get_element().style.display = 'block'; } }); </script>

Pour plus d'explication, tout se trouve ici : Why the UpdateProgress won't display

Posted: jeudi 22 février 2007 00:10 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

jeanjean40 a dit :

Bonjour,

merci de partager toutes tes connaissances en ASP.NET Ajax qui me sont très utiles!

Ce code marche parfaitement mais dans le cas ou je fais __doPostBack(args.get_postBackElement().id); l'élément concerné étant dans un UpdatePanel, l'UpdateProgress ne devrait il pas s'afficher automatiquement? Si non, comment en ayant uniquement cet élémnet, je peux afficher l'updateProgress?

Merci

# mai 18, 2010 17:18
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01