代码改变世界

递归树形加载

2016-07-04 11:19  wentianshehu  阅读(173)  评论(0编辑  收藏  举报

public void AddTree(string ParentID, TreeNode pNode)
    {
        if (ds.Tables.Count > 0)
        {
            DataView dvTree = new DataView(ds.Tables[0]);
            //过滤ParentOrgID,得到当前的所有子节点   
            dvTree.RowFilter = "[IndexParentID]   =   '" + ParentID + "' and [StatusFlag]='1'";
            foreach (DataRowView Row in dvTree)
            {
                TreeNode node = new TreeNode();
                if (pNode == null)
                {         //添加根节点   
                    node.Text = Row["IndexName"].ToString();
                    node.Value = Row["IndexID"].ToString();
                    TreeView1.Nodes.Add(node);
                    AddTree(Row["IndexID"].ToString(), node);         //再次递归   
                }
                else
                {       //添加当前节点的子节点   
                    node.Text = Row["IndexName"].ToString();
                    node.Value = Row["IndexID"].ToString();
                    pNode.ChildNodes.Add(node);
                    AddTree(Row["IndexID"].ToString(), node);         //再次递归   
                }
            }
            dvTree.Dispose();
            ds.Dispose();
        }

    }