检索数据到树视图
本文关键字:视图 数据 检索 | 更新日期: 2023-09-27 18:07:45
我有一个这样的表
TaskID------ParentID-------TaskName
1-----------Null-----------AllPro
2-----------1--------------Drink
3-----------2--------------Coco
4-----------2--------------Pepsi
5-----------1--------------Food
6-----------5--------------Macdo
我试着把它放到树视图中,我的问题是,当我想在任务id和父id之间建立关系时,结果是重复的,你可以看到我的代码:
一个表中的两个列之间的关系:
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
我认为你不应该在LINQ中使用join;你的表应该只读一次,并且拥有所有的记录,你应该知道如何用递归键ParentID将它们嵌套到彼此中,基本上每个记录都有一个Id,一个标签,并且知道它属于哪个其他父记录,没有理由连接。
在旧的windows窗体编程中,我可能会编写一个小程序来扫描所有记录并相应地创建节点。也有一些层次属性的树视图一般,所以你可以指定父节点字段或类似的东西,树视图使层次结构为你,但我真的不确定这与默认的窗口形式的树视图,我使用了这么多的控件,不记得哪一个有哪些功能没有检查…(DevExpress, Telerik, inffragistics…)