C# 最原始的tree 递归使用


using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EasyUITree
{
     public  partial  class WebForm1 : System.Web.UI.Page
    {
         protected  void Page_Load( object sender, EventArgs e)
        {

        }

        List<tree> listTreeAll =  new List<tree>();

        tree treeAll =  new tree();

         public tree BindNew(tree node)
        {
            DataTable dr = GetReader(node.id);
            tree n =  new tree();
             for ( int i =  0; i < dr.Rows.Count; i++)
            {
                 if (Convert.ToInt32(dr.Rows[i][ " pid "]) ==  0)
                {

                    n.id = Convert.ToInt32(dr.Rows[i][ " id "]);
                    n.text = dr.Rows[i][ " text "].ToString();
                    n.pid = Convert.ToInt32(dr.Rows[i][ " pid "]);
                    n.child = GetChild(n);

                }
            }
             return n;
        }
         public List<tree> GetChild(tree node)
        {
            DataTable dr = GetReader(node.id);
            List<tree> child =  new List<tree>();
             for ( int i =  0; i < dr.Rows.Count; i++)
            {

                tree n =  new tree();
                n.id = Convert.ToInt32(dr.Rows[i][ " id "]);
                n.text = dr.Rows[i][ " text "].ToString();
                n.pid = Convert.ToInt32(dr.Rows[i][ " pid "]);
                child.Add(n);
                DataTable dr1 = GetReader(n.id);
                 if (dr1 !=  null)
                {
                    n.child = GetChild(n);
                }


            }
             return child;
        }

        





         ///   <summary>
        
///  测试
        
///   </summary>
        
///   <param name="sender"></param>
        
///   <param name="e"></param>
         protected  void Button1_Click( object sender, EventArgs e)
        {
            tree model =  new tree();
            model.id =  0;
            BindNew(model); // 递归

            List<tree> list =  new List<tree>();
            list.Add(BindNew(model));




        }

         public DataTable GetReader( int pid)
        {
             string sql =  "  select * from t_tree where pid =  " + pid +  "    ";   // where pid = " + pid + "  ";
             string ConnectionString =  " uid=sa;pwd=qazwsx;initial catalog=TestDBase;data source=DESKTOP-HKIRA54;Connect Timeout=900 ";
             using (SqlConnection con =  new SqlConnection(ConnectionString))
            {
                SqlCommand cmd =  new SqlCommand(sql, con);
                con.Open();
                DataSet ds =  new DataSet();
                SqlDataAdapter adapter =  new SqlDataAdapter();
                adapter.SelectCommand = cmd;
                adapter.Fill(ds);

                DataTable table = ds.Tables[ 0];
                 return table;
            }
        }
    }


     public  class tree
    {
         public  int id {  getset; }
         public  string text {  getset; }
         public  int pid {  getset; }
         public List<tree> child {  getset; }


    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM