Treeview_checkbox

[Résolu]
Signaler
Messages postés
182
Date d'inscription
lundi 13 mars 2006
Statut
Membre
Dernière intervention
25 décembre 2009
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour tout le monde ,
 
J'ai un treeview_checkbox qui contient :  n pére et n fils je voudrais savoir comment faire lorsqu'on croche  un pére et que les fils soient tous croché (VOICI MA FONCTION)PS : Module pére  et Droits fils
Quelqu'un peut m'aider SVP merci à l'avance.

private void Affecter_DroitsAutoriser(string NomTypeUtilisateur)
        {

            DataTable dataListesDroitsAutoriser = BLL.Utilisateur.LireDroitsModuleTypeUtilisateur(NomTypeUtilisateur);

            if (dataListesDroitsAutoriser.Rows.Count == 0)
            {
                return;
            }

            int cptListe = 0;
            string codeModule = (string)dataListesDroitsAutoriser.Rows[cptListe]["CodeModule"];
            int codeDroit = (Int32)dataListesDroitsAutoriser.Rows[cptListe]["CodeDroits"];

            bool finTableau = false;

            //for (int Cases = 0; Cases < treeViewModule.Nodes.Count; Cases++)
            int cptModule = 0;
            while (cptModule < treeViewModule.Nodes.Count && !finTableau)
            {
                TreeNode tnModule = treeViewModule.Nodes[cptModule];
                //treeViewModule.GetNodeCount(true);

                //est ce le bon module
                if (codeModule.Equals((string)tnModule.Tag))
                {
                    tnModule.Checked = true;
                    tnModule.Expand();
                    int cptDroit = 0;
                    while (cptDroit < tnModule.Nodes.Count && !finTableau)
                    {
                        TreeNode tnDroit = (TreeNode)tnModule.Nodes[cptDroit];

                        //si on a trouve le droit
                        if (codeDroit == (Int32)tnDroit.Tag)
                        {
                            tnDroit.Checked = true;
                            //On passe à la ligne suivante
                            cptListe++;
                            if (cptListe < dataListesDroitsAutoriser.Rows.Count)
                            {

                                codeDroit = (Int32)dataListesDroitsAutoriser.Rows[cptListe]["CodeDroits"];

                                //Si le module est différent
                                if (codeModule != (string)dataListesDroitsAutoriser.Rows[cptListe]["CodeModule"])
                                {
                                    codeModule = (string)dataListesDroitsAutoriser.Rows[cptListe]["CodeModule"];
                                    break;
                                }
                            }
                            else
                            {
                                finTableau = true;
                            }
                        }
                        cptDroit++;
                    }
                }
                cptModule++;
            }
        }
 

1 réponse

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
26
Bonjour


Pour ce faire, je ne vais pas te recoder une source que j'ai trouver sur le net. Je te proposes donc de suivre l'exemple suivant: http://www.dnzone.com/forum/topic.asp?topic_id=150


N'oublies pas de vérifier l'action suivante : quand tu décoches un noeuf enfant, il faut décocher le noeud parent. Et à l'inverse, si tu coches le dernier noeud enfant, il faut recocher le noeud parent.


Bonne journée

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------