Partager via


Ajout dynamique d’un volet accordéon (C#)

par Christian Wenz

Télécharger le PDF

Le contrôle Accordéon dans ajax Control Toolkit fournit plusieurs volets et permet à l’utilisateur d’afficher l’un d’entre eux à la fois. Les panneaux sont généralement déclarés dans la page elle-même, mais le code côté serveur peut être utilisé pour obtenir le même résultat.

Vue d’ensemble

Le contrôle Accordéon dans ajax Control Toolkit fournit plusieurs volets et permet à l’utilisateur d’afficher l’un d’entre eux à la fois. Les panneaux sont généralement déclarés dans la page elle-même, mais le code côté serveur peut être utilisé pour obtenir le même résultat.

Étapes

Le contrôle Accordéon expose toutes les propriétés importantes au code côté serveur. Entre autres choses, la Panes propriété accorde l’accès à la collection de volets qui composent l’accordéon. Chaque volet est de type AccordionPane. Il est donc trivial de créer un tel volet :

AccordionPane ap1 = new AccordionPane();

La HeaderContainer propriété de AccordionPane fournit l’accès aux contrôles ASP.NET dans la section d’en-tête du volet ; la ContentContainer propriété de AccordionPane fait de même pour la section de contenu du volet. Cela permet ASP.NET code d’ajouter du contenu aux volets :

ap1.HeaderContainer.Controls.Add(new LiteralControl("Using Code"));
ap1.ContentContainer.Controls.Add(new 
    LiteralControl("Adding panes using code is really flexible."));

Enfin, les volets doivent être ajoutés à la Panes collection de l’accordéon :

acc1.Panes.Add(ap1);

Voici un code complet côté serveur qui ajoute deux volets à un contrôle Accordéon :

<script runat="server">
void Page_Load() 
{
 if (!Page.IsPostBack)
 {
 AccordionPane ap1 = new AccordionPane();
 ap1.HeaderContainer.Controls.Add(new LiteralControl("Using Markup"));
 ap1.ContentContainer.Controls.Add(new 
 LiteralControl("Adding panes using markup is really simple."));
 AccordionPane ap2 = new AccordionPane();
 ap2.HeaderContainer.Controls.Add(new LiteralControl("Using Code"));
 ap2.ContentContainer.Controls.Add(new 
 LiteralControl("Adding panes using code is really flexible."));
 acc1.Panes.Add(ap1);
 acc1.Panes.Add(ap2);
 }
}
</script>

Le seul élément manquant est l’accordéon lui-même, qui dépend de la présence du contrôle ASP.NET ScriptManager :

<form id="form1" runat="server">
 <asp:ScriptManager ID="asm" runat="server" />
 <div>
 <ajaxToolkit:Accordion ID="acc1" runat="server" 
 HeaderCssClass="header" ContentCssClass="content" 
 Width="300px" FadeTransitions="true">
 </ajaxToolkit:Accordion>
 </div>
</form>

Pour terminer l’exemple, les deux classes CSS référencées dans le contrôle Accordéon fournissent des informations de style pour le navigateur :

<style type="text/css">
 .header {background-color: blue;}
 .content {border: solid;}
</style>

Les données de l’accordéon ont été ajoutées dynamiquement par le code côté serveur

Les données de l’accordéon ont été ajoutées dynamiquement par le code côté serveur (cliquez pour afficher l’image en taille réelle)