天道酬勤

博观而约取,厚积而薄发!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

根据数据库创建TreeView的方法

Posted on 2010-04-29 18:59  Happy Coding  阅读(656)  评论(0编辑  收藏  举报
数据库结构     ID int(4) 主键    ParentID int(4)     ConText nvchar(50) 均No Null
***********************************************************************
函数说明
public void AddTree(int ParentID, TreeNode pNode,TreeView treeView,DataTable dt)
其中treeView为TreeView控件,dt为数据集中的表。

调用示例:

            dt = (DataTable)td.RetiereTree();
            AddTree(0, (TreeNode)null,treeView1,dt);

Vs2005 C# WindowsXp 测试通过。
***********************************************************************
public void AddTree(int ParentID, TreeNode pNode,TreeView treeView,DataTable dt)
        
{
           
             DataView dvTree
= new DataView(dt);
            
//过滤ParentID,得到当前的所有子节点
            
//dvTree.RowFilter = "[PARENTID] = " + ParentID;
             dvTree.RowFilter = "[PARENTID]=" + ParentID;


            
foreach (DataRowView Row in dvTree)
            
{
           
                 TreeNode Node
= new TreeNode();
                
if (pNode == null)
                
{    //添加根节点
                     Node.Text = Row["ConText"].ToString();
                     treeView.Nodes.Add(Node);
                    
//Node.Expanded = true;
                     AddTree(Int32.Parse(Row["ID"].ToString()), Node,treeView,dt);    //再次递归
                 }

                
else
                
{   //̀添加当前节点的子节点
                     Node.Text = Row["ConText"].ToString();
                     pNode.Nodes.Add(Node);
                    
//Node.Expanded = true;
                     AddTree(Int32.Parse(Row["ID"].ToString()), Node,treeView,dt);     //再次递归
                 }

             }

         }