2011-09-05 4 views
1

Je table comme ceRécupération des données Tree Voir

TaskID------ParentID-------TaskName 
    1-----------Null-----------AllPro 
    2-----------1--------------Drink 
    3-----------2--------------Coco 
    4-----------2--------------Pepsi 
    5-----------1--------------Food 
    6-----------5--------------Macdo 

J'essaie de l'obtenir pour l'arborescence, mon problème est quand je veux faire relation entre id tâche et ID parent l'avant-corps dédouble comme vous pouvez voir mon code:

La relation entre deux colonnes dans une table:

public IQueryable<tblTask> GetTaskTree() 
    { 
     var MySubject = from publisher in ObjectContext.tblTasks 
         join subjects in ObjectContext.tblTasks 
         on publisher.ParentTaskID equals subjects.TaskID 
         select publisher; 
     return MySubject; 
    } 

ce résultat est comme ceci:

Drink 
--Pepsi 
--Coco 
Pepsi 
Coco 
Food 
---Mac 
Mac 

Et voici itemtemplate

Pourriez-vous me aider plz.

Répondre

0

Je ne pense pas que vous devriez avoir une jointure dans votre LINQ; votre table doit être lue une seule fois et avoir tous les enregistrements que vous devriez savoir comment les imbriquer les uns avec les autres avec la clé récursive ParentID, chaque enregistrement a un ID, une étiquette et sait à quel autre parent il appartient, aucune raison de rejoindre . Dans les vieilles fenêtres de programmation de formes Dans les vieilles fenêtres de programmation de formulaires J'écrirais probablement une petite procédure pour analyser tous les enregistrements et créer des noeuds en conséquence. Il y a aussi des propriétés hiérarchiques de TreeView en général, de sorte que vous pouvez spécifier le champ de nœud parent ou quelque chose de similaire et TreeView fait la hiérarchie pour vous mais vraiment je ne suis pas sûr avec les formes par défaut de TreeView, de nombreux contrôles qui ne peuvent pas se souvenir de ceux qui ont quelles caractéristiques sans vérifier ... (DevExpress, Telerik, Infragistics ...).

Questions connexes