Comment : permettre aux utilisateurs de sélectionner des éléments dans des contrôles serveur Web DataList
Mise à jour : novembre 2007
Vous pouvez permettre aux utilisateurs de sélectionner des éléments individuels dans le contrôle serveur Web DataList. En règle générale, la sélection d'un élément met celui-ci en surbrillance. En outre, vous avez la possibilité d'afficher des informations supplémentaires pour un élément sélectionné.
Pour permettre aux utilisateurs de sélectionner des éléments dans un contrôle DataList
Créez un SelectedItemTemplate pour définir la disposition du balisage et des contrôles pour un élément sélectionné. Pour plus d'informations, consultez Modèles de contrôles serveur Web ASP.NET.
Définissez les propriétés SelectedItemStyle du contrôle. Pour plus d'informations, consultez Contrôles serveur Web ASP.NET et styles CSS.
Dans le ItemTemplate (et AlternatingItemTemplate, si vous l'utilisez), ajoutez un contrôle serveur Web Button ou LinkButton.
Affectez à la propriété CommandName du bouton de l'étape 3 la valeur select (la casse doit être respectée).
Créez un gestionnaire d'événements pour l'événement SelectedIndexChanged du contrôle DataList. Dans le gestionnaire d'événements, appelez la méthode DataBind du contrôle pour actualiser les informations qu'il contient. Le code complet peut ressembler à ceci :
Protected Sub DataList1_SelectedIndexChanged(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles DataList1.SelectedIndexChanged DataList1.DataBind() End Sub
protected void DataList1_SelectedIndexChanged (object sender, System.EventArgs e) { DataList1.DataBind(); }
Pour annuler la sélection, affectez la valeur -1 à la propriété SelectedIndex du contrôle. Pour cela, vous pourriez ajouter un contrôle serveur Web Button au modèle SelectedItem et affecter la valeur "unselect" à sa propriété CommandName. L'événement Click pour ce bouton est également transféré à l'événement ItemCommand du contrôle DataGrid.
Le code complet peut ressembler à ceci :
Protected Sub DataList1_ItemCommand(ByVal source As Object, _
ByVal e As DataListCommandEventArgs) _
Handles DataList1.ItemCommand
If e.CommandName = "unselect" Then
DataList1.SelectedIndex = -1
End If
DataList1.DataBind()
End Sub