Hello à tous,

j'espère que vous pourrez m'aider car là je commence à me tirer les cheveux...

je travail sur un intranet qui a un moment donné rempli une ddl avec des utilisateurs (nom + prénom uniquement) depuis l'Active Directory. Pour faciliter la sélection j'ai ajouté un champ texte pour filtrer les utilisateurs.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
        protected void btnFiltreDirectory_Click(object sender, EventArgs e)
        {
            //si aucun texte, on recharge par défaut
            if (txtDirectory.Text == "")
            {
                loadUsers();
                return;
            }
 
            //copie de la ddl
            DropDownList list = lstDirectory;
 
            //suppression des valeurs
            lstDirectory.Items.Clear();
 
            for (int i = 0; i < list.Items.Count; i++)
            {
                if (list.Items[i].Text.Contains(txtDirectory.Text))
                    lstDirectory.Items.Add("Helder Ribeiro");
            }
 
        }
loadUsers(); est ma méthode qui rempli la ddl au chargement, elle est appelé dans le Page_Load dans une condition if(!IsPostBack).

L'utilisateur souhaite avoir la possibilité de saisir partiellement les noms d'ou la non utilisation de la méthode .FindByText()

Lors de mes test sur l'utilisateur Helder RIBEIRO (filtré par exemple avec "Helder" ou "RIBEIRO" ou "Held"...) je le trouve et quand je suis en débugg j'ai bel et bien "Helder Ribeiro" dans mon lstDirectory après ma boucle for. mais coté navigateur ma ddl est vide.

Vos suggestions seront les bienvenues