Contrôler dynamiquement les animations d'un UpdatePanel

| Christian Wenz | Benjamin Roux (Traducteur) |

Dans cet article vous allez voir comment contrôler dynamiquement les animations d'un UpdatePanel

- Titre : Contrôler dynamiquement les animations d'un UpdatePanel

- Auteurs : Christian Wenz, Benjamin Roux (Traducteur)

- Parution : 18 décembre 2013

- Licence : Copyright ® 2009 Equipe Dotnet. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Traduction

- 2. Introduction

- 3. Etapes

1 - Traduction

Cet article est la traduction la plus fidèle possible de l'article original : Animating an UpdatePanel Control

2 - Introduction

Le contrôle Animation dans le ASP.NET AJAX Control Toolkit n'est pas simplement un contrôle, mais un framework entier pour ajouter des animations à un contrôle. Pour le contenu d'un UpdatePanel, un Extender spécial existe qui le relie fortement au framework d'animation : UpdatePanelAnimation.

3 - Etapes

La première étape est - comme toujours - d'inclure un ScriptManager dans la page afin de charger la librairie ASP.NET AJAX.

<asp:ScriptManager ID="asm" runat="server" />

L'animation dans ce scénarion sera appliquée à l'affichage de l'heure actuelle. Cette information peut simplement être écrite dans un label en utilisant la méthode Page_Load() ou le code inline suivant :

<%= DateTime.Now.ToLongTimeString() %>

Un bouton pour mettre à jour l'heure est également ajouté :

<asp:Button ID="Button1" runat="server" Text="Update" />

Ce code est ensuite placé dans la section <ContentTemplate> d'un UpdatePanel. L'attribut UpdateMode du panel doit être mis sur Conditionnal afin que seul les triggers puissent mettre à jour le contenu du panel. Dans la section <Triggers> de l'UpdatePanel, un postback asynchrone est créé et relié à l'évènement Click du bouton. Ainsi, si l'utilisateur clic sur le bout, l'UpdatePanel est mis à jour. Voici le code utilisé :

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%= DateTime.Now.ToLongTimeString() %>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

Pour finir, l'UpdatePanelAnimationExtender doit être configuré : mettre l'attribut TargetControlID à l'ID du panel, et définir une animation. Un effet de fondu va être utilisé. Votre code doit ressembler à ça :

<code langage="aspnet"><![CDATA[<ajaxToolkit:UpdatePanelAnimationExtender ID="upae" runat="server" TargetControlID="UpdatePanel1">
<Animations>
<OnUpdated>
<FadeIn Duration="1.0" Fps="24" />
</OnUpdated>
</Animations>
</ajaxToolkit:UpdatePanelAnimationExtender>

Vous pouvez lancer la page dans votre navigateur. Chaque fois que vous cliquerez sur le bouton, l'heure actuelle sera affichée dans le panel avec un effet de fondu pendant une seconde.