Avatar billede slapstick Nybegynder
22. oktober 2008 - 10:25 Der er 1 løsning

gennemgang af treeview checkbokse

Jeg har et treeview med UDDI kategorier der bliver genereret dynamisk med en masse noder og undernoder med flere undernoder osv osv
Jeg skal så løbe dem igennem og hente værdierne for dem der er checked og bruge det til en søgning
Hvis en node er checked og ingen undernoder er checked skal den gå ud fra at alt i den node skal med og derfor kun tilføje den nodes værdi til søgekriteriet.
Men hvis der er nogle checked undernoder skal den kun tilføje undernodernes værdier til søgekriteriet
Der kan være ret mange lag af undernode på en given node
Er der nogen der har en smart løsning på det?
Avatar billede slapstick Nybegynder
24. oktober 2008 - 14:54 #1
nå jeg fandt selv på en løsning..
måske ikke den mest elegante men den virker da

List<string> CategoryList = new List<string>();
GetCheckedNodes(tvCategories.Nodes[0]);

public void GetCheckedNodes(TreeNode parentNode)
        {
            foreach (TreeNode node in parentNode.ChildNodes)
            {
                if (node.Checked == true)
                {
                    CategoryList.Add(node.Value);
                    CheckParentNode(node);
                }
                GetCheckedNodes(node);
            }
        }

        public void CheckParentNode(TreeNode childNode)
        {
            if (childNode.Parent != null)
            {
                if (childNode.Parent.Checked == true)
                {
                    CategoryList.Remove(childNode.Parent.Value);
                }
                CheckParentNode(childNode.Parent);
            }
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester