有递归
就直接调用即可
private void InitTree ( TreeNodeCollection nodes, string parentId )
    {
        DataRow [] rows = this.ds.Tables [ "tree" ].Select ( "ParentId='" + parentId + "'" );
        foreach ( DataRow dr in rows )
        {
            TreeNode tmpNode = new TreeNode ();
            tmpNode.Text = dr [ "NodeName" ].ToString ();
            tmpNode.NavigateUrl = dr [ "Url" ].ToString ();
            nodes.Add ( tmpNode );
            string id = dr [ "NodeId" ].ToString ();
            InitTree ( tmpNode.ChildNodes, id );//递归循环添加节点
        }
    }
}