Altas Update Panel
Depuis la CTP de Décembre, Atlas possède un contrôle serveur "UpdatePanel" qui permet de faire du rafraichissement partiel de page (comme
MagicAjax).
Ce contrôle a un avantage, c'est qu'il peut fonctionner avec un système de trigger.
Par exemple, je veux que la zone html délimitée par mon updatePanel se rafraichisse quand l'utilisateur click sur tel bouton, lorsque telle textbox est modifiée ou bien lorsqu'une propriété est modifiée coté client.
Combiné avec le contrôle serveur Timer d'Atlas, il est aussi possible de faire du rafraichissement de zone de manière périodique
Par exemple, pour rafraichir le texte d'un asp:label en fonction d'un click sur un bouton ou bien toutes les 5 secondes:
<asp:Button runat="server" ID="bt" Text="button" />
<atlas:TimerControl runat="server" ID="timer" Interval="5000" />
<atlas:UpdatePanel runat="server" ID="updatepanel1" >
<ContentTemplate>
<asp:Label runat="server" id="lb" />
//mon contenu … rafraichir
</ContentTemplate>
<Triggers>
<atlas:ControlEventTrigger ControlID="bt" EventName="Click" />
<atlas:ControlEventTrigger ControlID="timer" EventName="Tick" />
</Triggers>
</atlas:UpdatePanel>
Attention à ne pas oublier d'activier le "rendu partiel" au niveau du ScriptManager:
<
atlas:ScriptManager runat="server" ID="scpt" EnablePartialRendering="true" />
Coté serveur, le contenu du label "lb" est mis à jour comme si il s'agissait d'un PostBack. L'avantage de ce genre de "panel" est que vous n'avez pas besoin d'écrire de ligne de JavaScript, toute la gestion de la communication et du rafraichissement de la zone est pris en charge par Atlas.
Ca rappele MagicAjax, mais avec la prise en charge des triggers en plus, un gros plus.
D'un point de vue développement, la complétion fonctionne très bien, tout se fait intuitivement dans le code .aspx.
Je ne sais pas ce qui m'a pris aujourd'hui, mais je suis passé en mode design et quelle surprise de découvrir un assistant très sympathique pour la configuration des "triggers".
Vous sélectionnez votre type de trigger (ControlEvent ou ControValue), vous sélectionnez votre contrôle dans la liste et il vous propose la liste des Evénements/propriétés disponibles.
Pour aller plus loin et prévenir l'utilisateur du rafraichissement, avec un message "patientez..." pendant le chargement, il suffit d'utiliser le contrôle serveur UpdateProgress et le tour est joué.
<atlas:UpdateProgress runat="server" ID="progress">
<ProgressTemplate>
Patientez...
</ProgressTemplate>
</atlas:UpdateProgress>
C'est tout mignon ces trois contrôles, une fois de plus, vivement la Go-live :)