一個簡單問題 TreeView 如何實現三層?謝謝~ 

解决方案 »

  1.   

    我是三个表的,怎么用递归绑定实现无限级啊?
    表BIG_TYPE:   表MID_TYPE:     表SMALL_TYPE:
    BIG_ID          MID_ID           SMALL_ID
    BIG_NAME  MID_NAME   SMALL_NAME
             BIG_ID           MID_ID
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                treevieww();
            }
        }    private void treevieww()
        {
            DbConn cnn = new DbConn();
            SqlConnection conn = cnn.connection();
            string sql = "select * from BIG_TYPE  select * from MID_TYPE select * from SMALL_TYPE";
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);        DataSet ds = new DataSet();
            da.Fill(ds);        TreeNode[] tn = getMenu(0, ds);
            foreach (TreeNode tnn in tn)
            {
                TreeView1.Nodes.Add(tnn);
            }
            conn.Close();    }    TreeNode[] getMenu(int pid, DataSet ds)
        {
            DataView dv = ds.Tables[0].DefaultView;
            //dv.RowFilter = "PID=" + pid.ToString();
            int i = 0;
            TreeNode[] tn = new TreeNode[dv.Count];        //一级项循环
            foreach (DataRowView drv in dv)
            {
                tn[i] = new TreeNode(drv["BIG_NAME"].ToString(), drv["BIG_ID"].ToString());            //使用递归方式插入下级菜单的数组
                getMenu(int.Parse(tn[i].Value.ToString()), ds, tn[i]);            i++;
            }        return tn;
        }
        //递归过程
        void getMenu(int pid, DataSet ds, TreeNode tn)
        {
            DataView dv = ds.Tables[1].DefaultView;
            //dv.RowFilter = "PID=" + pid.ToString();        //当前项循环
            foreach (DataRowView drv in dv)
            {
                TreeNode tn0 = new TreeNode(drv["MID_NAME"].ToString(), drv["MID_ID"].ToString());            //插入下级项
                tn.ChildNodes.Add(tn0);            //递归调用
                //getMenu(int.Parse(drv["BIG_ID"].ToString()), ds, tn0);
            }    }
      

  2.   

    表BIG_TYPE: BIG_ID , BIG_NAME    
    表MID_TYPE: MID_ID , MID_NAME , BIG_ID   
    表SMALL_TYPE: SMALL_ID ,SMALL_NAME , MID_ID
      

  3.   

    不知楼主在实现当中哪里遇问题了数据递归控件应用主要属性和方法就是Nodes、ChildNodes、Add