use*_*807 6 c# recursion winforms
好吧,我在一个名为departments的数据库中有一个表,它有以下字段: Id,Parent,Name,IsActive.
用这些数据填充TreeView的最佳方法是什么?
Mon*_*nah 16
你可以使用以下
1-将数据库中的数据检索到datatable或list中,将其称为dataList
public void PopulateTree(ref TreeNode root,List<Department> departments)
{
if(root==null)
{
root=new TreeNode();
root.Text="Departments";
root.Tag=null;
// get all departments in the list with parent is null
var details=departments.Where(t=>t.Parent==null);
foreach(var detail in details)
{
var child= new TreeNode(){
Text=detail.Name,
Tage=detail.Id,
};
PopulateTree(ref child,departments);
root.Nodes.Add(child);
}
}
else
{
var id=(int)root.Tag;
var details=departments.Where(t=>t.Parent==id);
foreach(var detail in details)
{
var child= new TreeNode(){
Text=detail.Name,
Tage=detail.Id,
};
PopulateTree(ref child,departments);
root.Nodes.Add(child);
}
}
}
Run Code Online (Sandbox Code Playgroud)
并在Load事件中
TreeNode root=null;
var departments=query from database
PopulateTree(ref root,departments);
Run Code Online (Sandbox Code Playgroud)
希望这会对你有所帮助
问候
| 归档时间: |
|
| 查看次数: |
10587 次 |
| 最近记录: |