Bonjour je vous expose mon probleme dans son intégralité.

Alors, je developpe une application asp.net/C# pour un Intranet d'entreprise en stage.
J'ai plusieurs Pages qui contiennent differents controls (TextBox,Dropdownlist,Labels)
et a plusieurs moment je souhaite Verifier ou vider tous ces controles (a part des exceptions !)

j'ai donc creer une classe a part nomé GestionControls contenant 2 fonctions:

La 1ere sert à tout nettoyer:

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
 public void ClearControls(Control c)
        {
            

            foreach (Control c1 in c.Controls)
            {   

                if (c1.GetType() == typeof(TextBox)) { ((TextBox)c1).Text = string.Empty; }
                else if (c1.GetType() == typeof(DropDownList)) { ((DropDownList)c1).SelectedIndex = 0; }
                else if (((c1.GetType() == typeof(Label)) && (c1.ID != "LBL_titleinfocomp"))) { ((Label)c1).Text = ""; }

                if (c1.HasControls()) { ClearControls(c1); }
            }
        }
La deuxieme sert a verifier si la personne as bien remplit tout les champs

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
24
25
26
27
28
29
30
31

 public bool Formok(Control c)
        {
            bool mybool = true;

            foreach (Control c1 in c.Controls)
            {

             if (?????????)
            {
                if (c1.GetType() == typeof(TextBox))
                {
                    if (((TextBox)c1).Text == "")
                    {
                        mybool = false;
                        ((TextBox)c1).Font.Bold = true;
                        ((TextBox)c1).Text = "Remplir ce champ";
                    }
                }else if (c1.GetType() == typeof(DropDownList))
                {
                    if (((DropDownList)c1).SelectedIndex == 0)
                    {
                        ((DropDownList)c1).Font.Bold = true;
                        mybool = false;
                    }
                }
            }
          }
            return mybool;
        }


Nous voyons dans:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 else if (((c1.GetType() == typeof(Label)) && (c1.ID != "LBL_titleinfocomp")))
A la base je n'avais qu'un seul LBL que je ne devait pas "vider" alors je l'ai exclu dans la condition.


Le probleme maintenant c'est que j'ai plusieurs label à exclure et j'ai pas envie de faire un truc sale du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 else if (((c1.GetType() == typeof(Label)) && (c1.ID != "LBL_titleinfocomp") && (c1.id != "blabla") x 10))
Alors je pensais a faire une list avec tous les String des LBL à exclure
style:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
List<string> List_exclu_LBL = new List<string>();
List_exclu_LBL.add("LBL_a_exclure_N°1");
List_exclu_LBL.add("LBL_a_exclure_N°2");
Mais les questions sont:

1) Ou mettre cette list ? (dans une nouvelle Classe "excludedcontrols") pour la mettre dans une methode et l'appeler dans ma classe de gestion de controls ?

2) Comment former les conditions: Edit: Jsuis bete... (List_Excl_LBL.contains(c1.id) == false) en condition regle mon probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 else if (((c1.GetType() == typeof(Label)) && (c1.ID != de n'importe quel string contenue dans List_exclu_LBL))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7

            foreach (Control c1 in c.Controls)
            {

             if (c1.id != de list_exclu_LBL && c1.id != de list_exclu TXTB etc etc etc)
            {