将数据检索到树视图

时间:2011-09-05 18:07:40

标签: c# .net treeview

我有这样的表

    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

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我认为你不应该加入你的LINQ;你的表应该只读一次,并且你应该知道如何使用递归键ParentID将它们嵌套到彼此的所有记录,基本上每个记录都有一个Id,一个标签,并且知道它属于哪个其他父记录,没有理由加入

在旧的Windows窗体编程中,我可能会编写一个小程序来扫描所有记录并相应地创建节点。一般来说,TreeView也有一些分层属性,所以你可以指定父节点字段或类似的东西,TreeView为你制作层次结构,但我真的不确定这个用默认的Windows窗体TreeView,我用过很多控件不记得哪些功能没有检查...(DevExpress,Telerik,Infragistics ...)。