递归方法填充树型目录(treeview)

it2022-05-05  85

      

 

这个递归方法昨天想了一天也没明白,找不到递归的出口,我这郁闷。

请教了同事后再明白。现在写下来备忘!

原来递归方法中的循环结束了,递归就出来了。我感觉还有更好的方法,不过没时间想了。

---------------------------------------------------------------------------------------------

 

       private void FromLoad()        {            this.trvTask.Nodes.Clear();     //构造根节点             TreeNode rootNode = new TreeNode();            rootNode.Text = info.ProjectName;            rootNode.Tag = "null";                        DataTable dt = *** ;  //数据源            if (dt == null)                return;     //调用递归方法为 rootNode 添加子节点            this.InitTree(rootNode, dt, "null");            this.tree.Nodes.Add(rootNode);            this.tree.Nodes[0].ExpandAll();        }        /// <summary>        /// 递归构造树节点        /// </summary>        /// <param name="rootnode">根节点</param>        /// <param name="table">数据源</param>        /// <param name="parentid">父节点编号</param>        public void InitTree(TreeNode rootnode,DataTable table,string parentid)        {            if (table == null || table.Rows.Count == 0) return;            int count = table.Rows.Count;            DataRow row = null;            TreeNode newNode = null;            for (int i = 0; i < count; i++)            {                row = table.Rows[i];                if (parentid != Utilities.sigleton.GetObject(row["PARENTID"])) continue;

                newNode = new TreeNode();                newNode.Text = Utilities.sigleton.GetObject(row["PJTASKNAME"]);                newNode.Tag = Utilities.sigleton.GetObject(row["TABLEID"]);                string id = Utilities.sigleton.GetObject(row["TABLEID"]);                if (Utilities.sigleton.GetObject(row["associateCount"]) != "0")                    newNode.Checked = true;

                rootnode.Nodes.Add(newNode);                InitTree(newNode, table, id);            }         }

 

 

转载于:https://www.cnblogs.com/xxj-jing/archive/2008/11/20/2890121.html

相关资源:各显卡算力对照表!

最新回复(0)