2009-01-04 5 views
1

Comment puis-je générer des nœuds TreeView programme pour cette collectiongénérer nœuds TreeView programme

node id   parent node id 

-------   -------------- 

100     null   //this is the root node 

101     100 

123     101 

124     101 

126     101 

103     100 

104     100 

109     100 

128     109 

122     100 

127     122 

129     127 

130     129 
+0

Quel est le véritable problème? Vous ne savez pas comment créer les nœuds par programme ou y a-t-il quelque chose de spécial avec les identifiants de nœuds? – Raminder

+0

Je ne sais pas comment, il me semble que j'ai besoin de faire une méthode récursive mais je ne sais pas comment l'appliquer, j'ai commencé par ajouter dans la collection de nœuds mais mon problème est avec le nombre de ces instances! –

Répondre

3

Voici quelques pseudo-code qui pourrait aider à vous aider à démarrer

AddChildNodes(TreeNode parentNode) 
{ 
    var childNodeIds GetChildNodeIds(parentNode.Id); 
    foreach (int childNodeId in childNodeIds) 
    { 
     TreeNode childNode = new TreeNode(); 
     //set other properties... 

     //add to parent   
     parentNode.Nodes.Add(childNode); 

     //call same function recursively 
     AddChildNodes(childNode); 
    } 

}

Ensuite, Dans votre programme, vous commencez par obtenir tous les éléments sans l'ID du nœud parent (nœuds racine), en créant un nœud pour eux puis en appelant la fonction récursive ci-dessus.

+0

cela n'a pas fonctionné, parce que je n'ai pas seulement un parent et un enfant, j'ai des enfants (racine, enfant 1, enfant 2 enfant 3 enfant 4) mon problème est avec le nombre d'enfants im im remplissant ma vue d'arbre de la base de données et Cette table est une sortie d'une procédure stockée –

+0

Cet algorithme est récursif, il devrait aussi prendre soin de cela, peu importe le nombre de niveaux que vous avez. Utilisez simplement ce code et la liste que vous avez fournie et faites une simulation sur une feuille de papier, et vous verrez que cela fonctionne. – rodbv

+0

ya ya que je l'ai eu, mais certaines valeurs se perdent, je vais devoir corriger des trucs sm –