Treeview_checkbox

Résolu
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009 - 12 mars 2008 à 10:01
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 12 mars 2008 à 10:52
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

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
12 mars 2008 à 10:52
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
---------------------
3