Comment : personnaliser de manière dynamique des éléments dans le contrôle serveur Web DataList
Mise à jour : novembre 2007
Vous pouvez personnaliser dynamiquement des éléments du contrôle DataList, ce qui est utile lorsque vous souhaitez définir des caractéristiques d'élément selon les informations disponibles au moment de l'exécution. Cette rubrique contient deux exemples qui montrent comment personnaliser les éléments d'un contrôle DataList.
Le premier exemple de code montre comment personnaliser un élément individuel sans l'aide de données. L'exemple affiche différents types de modèles avec différentes couleurs d'arrière-plan.
Le second exemple de code décrit la personnalisation du contenu d'un élément du contrôle DataList en fonction des données qui y sont affichées. Le code examine le contenu d'une étiquette liée aux données dans l'élément pour extraire une date (date de naissance). Si le mois de naissance est identique au mois en cours, l'élément est affiché avec une couleur de surbrillance.
Exemple
' Example 1
Private Sub DataList1_ItemCreated(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) _
Handles DataList1.ItemCreated
Select Case e.Item.ItemType
Case ListItemType.Item
e.Item.BackColor = Color.LightGoldenrodYellow
Case ListItemType.AlternatingItem
e.Item.BackColor = Color.DarkGoldenrod
Case ListItemType.SelectedItem
e.Item.BackColor = Color.Yellow
Case Else
' Add code here to handle the header, footer, and
' separator templates.
End Select
End Sub
' Example 2
Private Sub DataList1_ItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) _
Handles DataList1.ItemDataBound
Dim dob As DateTime
Dim doblabel As Label
doblabel = CType(e.Item.FindControl("Label1"), Label)
dob = CType(doblabel.Text, DateTime)
If dob.Month = Today.Month Then
e.Item.BackColor = Color.Yellow
End If
End Sub
Compilation du code
Ces exemples nécessitent :
Un contrôle DataList, nommé DataList1, lié à la table Employees de la base de données Northwind. Pour plus d'informations sur la liaison d'un contrôle DataList à une source de données, consultez Comment : ajouter des contrôles serveur Web DataList à une page Web ASP.NET.
Un modèle d'élément contenant au moins un contrôle Label nommé Label1. Cette étiquette doit être liée au champ BirthDate de la table Employees. Pour plus d'informations sur la liaison des contrôles aux champs, consultez Vue d'ensemble des expressions de liaison de données.
Programmation fiable
La méthode la plus fiable d'extraction de la valeur d'un contrôle dans un modèle de contrôle DataList comprend les deux étapes ci-dessous :
Assigner un ID au contrôle au moment du design.
Utiliser la méthode FindControl du conteneur de dénomination (naming container) ; dans cet exemple, il s'agit d'un objet DataListItem.
La méthode FindControl retourne un objet de type Control. Vous devez effectuer un cast de cet objet en type de contrôle approprié. Si aucun objet n'est trouvé et si vous essayez d'extraire sa valeur, le contrôle lève une exception de type NullReferenceException.
Voir aussi
Tâches
Comment : personnaliser des éléments DataList au moment de l'exécution