Accueil     Commander     Clients     Téléchargements     Contacts     I-mode        Offre spéciale
   Hébergement ASP-PHP
      Pack PRO I
      Pack PRO II
      Pack PRO III
   Hébergement .NET
      Pack .NET I
      Pack .NET II
      Pack .NET III
   Revendeurs
      SEMI-DEDIE I
      SEMI-DEDIE II
      SERVEURS DEDIES
   Services
      NOM DE DOMAINE
      HTTPS & SSL
      E-COMMERCE
      SQL SERVEUR
      WEBMAIL
      REFERENCEMENT
   Les + Prosygma
      NOS TARIFS
      LE RESEAU
      ASSISTANCE
   Outils
      WHOIS
      FAQ
      Aide IIS
      Ressource KIT FP
      Composants ASP
     PARTENAIRES
     
     
     

Solutions hébergement
Support Dot NET.
  
  Source : Les laboratoires Microsoft

 

Accès aux données et personnalisation


Présentation des contrôles basés sur un modèle

Même si le contrôle serveur DataGrid décrit à la section précédente est adapté à de nombreux scénarios d'applications Web dans lesquels une représentation de type grille est appropriée, il est souvent nécessaire que la présentation des données soit bien plus riche. ASP.NET propose deux contrôles, DataList et Repeater, qui vous procurent une meilleure souplesse pour le rendu des données de type liste. Ces contrôles sont basés sur un modèle et ne possèdent donc pas de rendu par défaut qui leur soit propre. Le mode de rendu des données est totalement déterminé par votre implémentation des modèles de contrôle qui décrivent la manière dont les éléments de données doivent être présentés.

Comme le contrôle DataGrid, les contrôles DataList et Repeater prennent en charge une propriété DataSource qui peut être définie comme étant de type ICollection, IEnumerable ou IListSource. Les données de ce DataSource sont liées au contrôle à l'aide de sa méthode DataBind. Une fois les données liées, la mise en forme de chaque élément de données est décrite par un modèle.

La propriété ItemTemplate contrôle le rendu de chaque élément dans la collection DataSource. Dans un ItemTemplate, vous pouvez définir un code de présentation arbitraire (HTML ou autre). À l'aide de la syntaxe de liaison de données ASP.NET, vous pouvez insérer des valeurs à partir des données liées au contrôle DataList ou Repeater, comme le montre l'exemple suivant.

<ASP:Repeater id="MyRepeater" runat="server">

    <ItemTemplate>
        Hello <%# DataBinder.Eval(Container
.DataItem, "name") %> ! </ItemTemplate> </ASP:Repeater>

Le Container représente le premier contrôle de la hiérarchie immédiate prenant en charge l'interface de marqueur System.Web.UI.INamingContainer. Dans ce cas, le Container est résolu en objet de type System.Web.UI.WebControls.RepeaterItem, possédant une propriété DataItem. Comme le Repeater effectue une itération sur la collection DataSource, DataItem contient l'élément en cours dans cette collection. Par exemple, si la source de données a la valeur ArrayList pour des objets Employee, le DataItem est de type Employees. S'il est lié à un DataView, le DataItem est de type DataRowView.

L'exemple suivant illustre un contrôle Repeater lié à un DataView (retourné par une requête SQL). HeaderTemplate et FooterTemplate ont également été définis et rendus au début et à la fin de la liste, respectivement.

 
VB DataList1.aspx

Le contrôle Repeater effectue simplement une itération sur les données liées, en effectuant le rendu de ItemTemplate une fois pour chaque élément de la collection DataSource. Il ne restitue aucun élément à part ceux contenus dans ses modèles. Alors que le Repeater est un itérateur polyvalent, le DataList propose quelques fonctionnalités supplémentaires pour le contrôle de la présentation de la liste. Contrairement à Repeater, DataList effectue le rendu des éléments supplémentaires, tels que des lignes et des cellules de tableau, ainsi que des étendues contenant des attributs de style, à l'extérieur de la définition du modèle afin de permettre cette mise en forme plus riche. Par exemple, le contrôle DataList prend en charge les propriétés RepeatColumns et RepeatDirection qui spécifient si les données doivent être rendues dans plusieurs colonnes ainsi que le sens (vertical ou horizontal) de rendu des éléments de données. Le contrôle DataList prend également en charge des attributs de style, comme le montre l'exemple suivant.

<ASP:DataList runat="server" DataSource
="<%#MyData%>" RepeatColumns="2" RepeatDirection="Horizontal" ItemStyle-Font-Size="10pt" ItemStyle-Font-Name="Verdana" > ... </ASP:DataList>

Remarque : La suite de cette section concerne principalement les nombreuses fonctionnalités du contrôle DataList. Pour plus d'informations sur le contrôle Repeater, consultez la rubrique Repeater de la section Référence des contrôles Web Forms de ce didacticiel.

L'exemple suivant illustre l'utilisation du contrôle DataList. Remarquez que l'aspect des éléments de données a été modifié par rapport à l'exemple précédent, en changeant simplement le contenu de la propriété ItemTemplate du contrôle. Les propriétés RepeatDirection et RepeatColumns déterminent la présentation des ItemTemplates.

 
VB Datalist2.aspx

L'exemple suivant illustre de manière plus détaillée la souplesse infinie des modèles en modifiant à nouveau ItemTemplate. Cette fois, une des valeurs DataItem remplace l'attribut « src » d'une balise <img>. Ce paramètre String format de DataBinder.Eval substitue également une valeur DataItem dans la chaîne de requête d'une URL.

 
VB Datalist3.aspx



Gestion des publications à partir d'un modèle

Comme dans le DataGrid, vous pouvez déclencher une commande à partir d'un modèle DataList passé à un gestionnaire d'événements associé au DataList proprement dit. Par exemple, un LinkButton situé dans ItemTemplate peut déclencher une commande Select. En choisissant la propriété OnSelectedIndexChanged du DataList, vous pouvez appeler un gestionnaire d'événements en réponse à cette commande. L'exemple suivant illustre ce processus :

L'exemple suivant illustre le fonctionnement de ce code. Dans le gestionnaire d'événements MyDataList_Select, vous remplissez plusieurs autres contrôles serveur à l'aide des informations détaillées concernant l'élément sélectionné.

 
VB Datalist4.aspx

Remarquez que même si le contrôle DataList reconnaît quelques commandes spéciales, telles que Select et Edit/Update/Cancel, la chaîne de commande déclenchée à l'intérieur d'un modèle peut être n'importe quelle chaîne arbitraire. Pour toutes les commandes, l'événement OnItemCommand du contrôle DataList est déclenché. Vous pouvez associer cet événement à un gestionnaire comme dans l'exemple précédent. L'exemple suivant illustre la procédure.


<script runat="server">

    Protected Sub MyDataList_ItemCommand(Sender
As Object, E As DataListCommandEventArgs) Dim Command As String =
E.CommandName Select Case Command Case "Discuss" ShowDiscussions
(E.Item.DataItem) Case "Ratings" ShowRatings(E.Item.DataItem) End Select End Sub </script> <ASP:DataList id="MyDataList"
OnItemCommand="MyDataList_ItemCommand"
runat="server"> <ItemTemplate> <asp:linkbutton CommandName=
"Ratings" runat="server"> View Ratings </asp:linkbutton> | <asp:linkbutton CommandName=
"Discuss" runat="server"> View Discussions </asp:linkbutton> </ItemTemplate> </ASP:DataList>
C# VB JScript  

Remarquez que comme plusieurs commandes peuvent exécuter ce gestionnaire d'événements, vous devez utiliser une instruction switch pour déterminer la commande qui a été déclenchée. L'exemple suivant illustre le fonctionnement de ce code.

 
VB Datalist5.aspx



Utilisation des modèles Select et Edit

Outre la gestion de la commande Select à l'aide d'un gestionnaire d'événements au niveau de la page, le DataList peut répondre à cet événement en interne. Si un SelectedItemTemplate est défini pour le contrôle DataList, le contrôle DataList effectue le rendu de ce modèle pour l'élément qui a déclenché la commande Select. L'exemple suivant utilise SelectedItemTemplate pour afficher en gras le titre du livre sélectionné.

 
VB Datalist6.aspx

DataList prend également en charge un EditItemTemplate pour le rendu d'un élément dont l'index est égal à la propriété EditItemIndex de DataList. Pour plus d'informations sur la modification et la mise à jour, consultez la rubrique Mise à jour des données d'une base de données SQL de la section Accès aux données côté serveur de ce didacticiel.

 
VB Datalist7.aspx



Recherche d'un contrôle au sein d'un modèle

Il est parfois nécessaire de rechercher un contrôle au sein d'un modèle. Si un ID est affecté à un contrôle dans un modèle, ce contrôle peut être extrait à partir de son conteneur (premier contrôle de la hiérarchie parente prenant en charge INamingContainer). Dans ce cas-ci, le conteneur est le contrôle DataListItem. Remarquez que même si plusieurs contrôles possèdent le même ID (suite à la répétition du DataList), chacun est contenu logiquement dans l'espace de noms du contrôle conteneur DataListItem.

Vous pouvez parcourir la collection Items du DataList afin d'extraire le DataListItem pour un index donné, puis appeler la méthode FindControl du DataListItem (héritée de la classe Control de base) pour extraire un contrôle possédant un ID spécifique.


<script runat="server">

    Public Sub Page_Load(sender
As Object, E As EventArgs)) ' set datasource and call
databind here For I=0 To MyDataList.
Items.Count-1 Dim IsChecked As String =
MyDataList.Items(i).FindControl
("Save").Checked.ToString() If IsChecked = "True" Then ... End If Next End Sub </script> <ASP:DataList id="MyDataList"
runat="server"> <ItemTemplate> <asp:CheckBox id="Save"
runat="server"/> <b>Save to Favorites</b> </ItemTemplate> </ASP:DataList>
C# VB JScript  

L'exemple suivant illustre le fonctionnement de ce code.

 
VB Datalist8.aspx

Résumé de la section

  1. Les contrôles DataList et Repeater permettent aux développeurs de contrôler avec précision le rendu des listes liées à des données.
  2. Le rendu des données liées est contrôlé à l'aide d'un modèle, tel que HeaderTemplate, FooterTemplate ou ItemTemplate.
  3. Le contrôle Repeater est un itérateur d'usage commun qui n'insère dans son rendu aucun élément qui n'appartient pas à un modèle.
  4. Le contrôle DataList permet de contrôler davantage la présentation et le style des éléments. Il génère son propre code de rendu pour la mise en forme.
  5. Le contrôle DataList prend en charge les événements Select, Edit/Update/Cancel et Item Command qui peuvent être gérés au niveau de la page en associant des gestionnaires d'événements à des événements Command du DataList.
  6. Le contrôle DataList prend en charge un SelectedItemTemplate et un EditItemTemplate pour le contrôle du rendu d'un élément sélectionné ou modifiable.
  7. Les contrôles peuvent être extraits par programme à partir d'un modèle à l'aide de la méthode Control.FindControl. Celle-ci peut être appelée sur un DataListItem extrait à partir de la collection Items du DataList.



Nos serveurs sont désormais des serveurs
Pentium 3 Ghz, 1 Go Ram

 La formule de base est à 10 Euros TTC / mois
Si vous avez des besoins plus spécifiques (composants, espace disque...), nous sommes la pour répondre à vos questions.
Rappel : les frais d'installation sont gratuits


Prosygma élu meilleur site.
 
Trois nouveaux composants ASP sont désormais en place sur toutes nos formules.Il s'agit de ASPIMAGE, ASPPOP3 et ASPMAIL.


La dernière version de Microsoft® .NET Framework contient tout ce qu'il vous faut pour faire fonctionner des applications .NET Framework est disponible sur nos serveurs

Cliquez içi pour commander votre hébergement .Net

Votre nom de domaine en .com, .net ou .org au prix unique : 20 Euros

  Vérifiez la disponibilité d'un nom de domaine