2011-09-05 53 views
1

我有臺這樣的檢索數據,以樹視圖

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

我設法得到它在給樹視圖中,我的問題是,當我想使任務ID和父ID的resault被複制的關係你可以看到我的代碼:

的關係是兩個列之間的一個表:

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; 
    } 

這樣的結果是這樣的:

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

而這裏的ItemTemplate

你能plz幫助我。

回答

0

我不認爲你應該加入你的LINQ;你的表應該只讀一次,並且應該知道如何使用遞歸鍵ParentID將它們嵌套到彼此中,基本上每個記錄都有一個Id,一個標籤並知道它屬於哪個其他父記錄,沒有理由加入。

舊窗口窗體編程我可能會寫一個小程序來掃描所有記錄並相應地創建節點。一般情況下,TreeView還有一些層次屬性,以便您可以指定父節點字段或類似的東西,而TreeView爲您創建層次結構,但實際上我不確定使用默認的Windows窗體TreeView,許多控件無法記住哪些功能沒有檢查...(DevExpress,Telerik,Infragistics ...)。