C# 遞迴產生樹

來源:互聯網
上載者:User

標籤:設定   from   view   parent   exec   .text   UI   creat   name   

   //遞迴產生樹        private void CreateTwo(TreeNode node, int id)        {            #region --根據指定ID尋找資料到 dt            string strSql = "select * from Menu where MenuParent = " + id;            DataTable dt = SqlHelper.ExecuteDatatable(strSql);            #endregion            if (id == 0)                                             // id = 0 是根節點             {                for (int i = 0; i < dt.Rows.Count; i++) //先查詢PID=0的                {                    TreeNode nd = new TreeNode();                    nd.Text = dt.Rows[i]["MenuName"].ToString();                    CreateTwo(nd, Convert.ToInt32(dt.Rows[i]["MenuId"].ToString())); //把根節點ID傳過去尋找PID是該id的子節點                    treeView1.Nodes.Add(nd);                }            }            else            {                for (int i = 0; i < dt.Rows.Count; i++)                {                    TreeNode Tnode = new TreeNode();                    Tnode.Text = dt.Rows[i]["MenuName"].ToString();                    CreateTwo(Tnode, Convert.ToInt32(dt.Rows[i]["MenuId"].ToString()));                    node.Nodes.Add(Tnode);                }            }        }

 非遞迴綁定3層級

        //綁定TrreView        private void InitModuleTree(DataTable dt)        {            //清空treeview上所有節點            this.treeView1.Nodes.Clear();            //先綁定父節點            for (int i = 0; i < dt.Rows.Count; i++)            {                int Prent = Convert.ToInt16(dt.Rows[i]["MenuParent"]);//                if (Prent == 0) //先綁定父節點                {                    TreeNode nodeParent = new TreeNode();                    nodeParent.Tag = dt.Rows[i]["MenuId"];//設定一個值,為加入子節點做準備,(先這樣用,不管Tag是什麼)                    nodeParent.Text = dt.Rows[i]["MenuName"].ToString();                    treeView1.Nodes.Add(nodeParent);                }            }            //在綁定子節點(綁定2級目錄)            foreach (TreeNode item in treeView1.Nodes)            {                for (int i = 0; i < dt.Rows.Count; i++)                {                    var ss = dt.Rows[i]["MenuParent"]; //擷取pid                    var s1 = item.Tag;                    if ((int)item.Tag == (int)dt.Rows[i]["MenuParent"]) //dt該行的pid = 這個父節點ID (表示屬該行子節點)                    {                        TreeNode childNode = new TreeNode();                        childNode.Tag = dt.Rows[i]["MenuId"];                        childNode.Text = dt.Rows[i]["MenuName"].ToString();                        item.Nodes.Add(childNode); //加入父節點中                    };                }            }            //在綁定子節點(綁定3級目錄)            foreach (TreeNode item1 in treeView1.Nodes)            {                int index0 = treeView1.Nodes.IndexOf(item1); //index 為索引值                var nodes1 = treeView1.Nodes[index0].Nodes;                foreach (TreeNode item in nodes1)                {                    for (int i = 0; i < dt.Rows.Count; i++)                    {                        var ss = dt.Rows[i]["MenuParent"]; //擷取pid                        var s1 = item.Tag;                        if ((int)item.Tag == (int)dt.Rows[i]["MenuParent"]) //dt該行的pid = 這個父節點ID (表示屬該行子節點)                        {                            TreeNode childNode = new TreeNode();                            childNode.Tag = dt.Rows[i]["MenuId"];                            childNode.Text = dt.Rows[i]["MenuName"].ToString();                            item.Nodes.Add(childNode); //加入父節點中                        };                    }                }            }            treeView1.ExpandAll();      //展開整棵樹        }

 

C# 遞迴產生樹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.