Comment : déterminer la sélection dans un contrôle serveur Web List
Mise à jour : novembre 2007
Les informations de cette rubrique s'appliquent aux contrôles serveur Web suivants : ListBox, DropDownList, CheckBoxList et RadioButtonList.
L'une des tâches les plus courantes lorsque vous travaillez avec un contrôle serveur Web de liste consiste à déterminer le ou les éléments que les utilisateurs ont sélectionnés. La procédure varie selon que le contrôle de liste autorise une sélection unique ou multiple.
Utilisez la procédure suivante lorsque vous travaillez avec le contrôle DropDownList, le contrôle RadioButtonList et un contrôle ListBox à une seule sélection.
Pour déterminer la sélection dans un contrôle de liste à une seule sélection
Utilisez l'une des méthodes suivantes :
Pour obtenir la valeur d'index de l'élément sélectionné, lisez la valeur de la propriété SelectedIndex. L'index est de base zéro. Si rien n'a été sélectionné, la valeur de la propriété est -1.
Pour obtenir le contenu de l'élément sélectionné, obtenez la propriété SelectedItem du contrôle. Cette propriété retourne un objet de type ListItem. Vous pouvez obtenir le contenu de l'élément sélectionné grâce à la propriété Text ou Value de l'objet.
Note de sécurité : Les contrôles dans une page Web Forms peuvent inclure un script client nuisible. Par défaut, la page Web Forms valide les entrées d'utilisateur qui n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Comment : se protéger contre les attaques de script dans une application Web en utilisant le codage HTML
L'exemple de code suivant montre comment vous pouvez tester et savoir quel élément est sélectionné dans un contrôle RadioButtonList. Le code détermine d'abord s'il y a ou non une sélection en lisant la valeur de la propriété SelectedIndex, à laquelle est affectée la valeur -1 jusqu'à ce que l'utilisateur sélectionne un élément. Il obtient alors l'objet SelectedItem dont il affiche la propriété Text.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Is anything selected? The index is -1 if nothing is selected. If RadioButtonList1.SelectedIndex > -1 Then Label1.Text="You chose: " & RadioButtonList1.SelectedItem.Text End If End Sub
Protected void Button1_Click (object sender, System.EventArgs e) { // Is anything selected? The index is -1 if nothing is selected. if (RadioButtonList1.SelectedIndex > -1) { Label1.Text="You chose: " + RadioButtonList1.SelectedItem.Text; } }
Si le contrôle de liste prend en charge des sélections multiples, vous devez parcourir le contrôle et vérifier les éléments sélectionnés un par un.
Pour déterminer la sélection dans un contrôle de liste à sélection multiple
Parcourez la collection Items du contrôle et testez la propriété Selected de chaque élément.
L'exemple suivant montre comment vous pouvez tester les sélections dans un contrôle ListBox à sélection multiple appelé ListBox1. Le code affiche une liste des éléments sélectionnés dans une étiquette.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim msg As String Dim li As ListItem msg = "" For Each li In ListBox1.Items If li.Selected = True Then msg = msg & "<br>" & li.Text & " selected." End If Next Label1.Text = msg End Sub
Protected void Button1_Click(object sender, System.EventArgs e) { string msg = "" ; foreach(ListItem li in ListBox1.Items) { if(li.Selected == true) { msg += "<BR>" + li.Text + " is selected."; } } Label1.Text = msg; }
Voir aussi
Référence
Vue d'ensemble des contrôles serveur Web CheckBox et CheckBoxList
Vue d'ensemble du contrôle serveur Web DropDownList
Vue d'ensemble du contrôle serveur Web ListBox
Vue d'ensemble des contrôles serveur Web RadioButton et RadioButtonList