永发信息网

如何遍历树

答案:1  悬赏:10  手机版
解决时间 2021-03-06 07:25
如何遍历树
最佳答案
递归算法

C#语言

getcomByDt() 是数据源,处理成一个datatable类型的

/// 
        /// 绑定树状菜单
        /// 

        private void BindClassM()
        {
            TreeNode tn = new TreeNode();
            DataRow[] row = getcomByDt().Select();
            foreach (DataRow rs in row)
            {
                TreeNode stn = new TreeNode();
                stn.Text = rs["ClassName"].ToString();
                stn.Value = rs["ID"].ToString();
                tvMenu.Nodes.Add(stn);
                //ptBind(stn);
                //递归算法生成所有级别的下级子菜单
                CreateMenu(getcomByDt(), rs["ID"].ToString(), stn);
            }
        }
        private void CreateMenu(DataTable dt, string p, TreeNode stn)
        {
            DaProductsClass Dp = new DaProductsClass();
            EnProductsClass Mp = new EnProductsClass();
            string strWhere = " ParentId='" + p.ToString() + "'";
            dt = Dp.GetTree(strWhere);
            DataRow[] drs = dt.Select();
            if (dt == null)
            {
                return;
            }
            if (dt.Rows.Count == 0)
            {
                return;
            }
            TreeNode tn = null;
            foreach (DataRow dr in drs)
            {
                tn = new TreeNode();
                tn.Text = dr["ClassName"].ToString();
                tn.Value = dr["ID"].ToString();
                tn.ToolTip = "产品分类";
                stn.ChildNodes.Add(tn);
                CreateMenu(dt, dr["ID"].ToString(), tn);
            }
        }追问不好意思,我对递归的思想理解一直不是很好,可以为我上面的例子单独学个么?我可以加分,拜托了追答你设置个断点多调试调试就能直观的体会了,你可以前台用一个asp:TreeView

datatable 有三个字段就行 id ClassName ParentId

CreateMenu 中自己调用了自己的,一层一层循环直到
if (dt == null)
{
return;
}
if (dt.Rows.Count == 0)
{
return;
}
dt为空也就是没有下级菜单了跳出。具体我也说不清楚
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
凯兴花苑怎么去啊,有知道地址的么
【琴】带有""琴”字的四字词语至少(10个)
大运劲动15O摩托车加5O块钱的油跑一百公里正
葡萄怎样种植成活率高
vivox3v耳机孔水泡坏了怎么办
cool+special怎么读
四大名点的名点介绍
永盛源超市我想知道这个在什么地方
男朋友提出分手后一个月不让看朋友圈干嘛不直
佳能单反裸机能用其它牌子的镜头吗
厨房发生大事件,厨师长要付什么法律责任
阿姨奶茶湖塘直营店地址有知道的么?有点事想
2019年金太阳导学测评七年级生物上册苏教版答
有没有和我一样,每天中午都在愁吃啥子,外
G302/Y001(路口)地址在什么地方,想过去办事
推荐资讯
S7e玩王者荣耀掉帧,有大神知道怎么可以控制
H1Z1有中文汉化么 我的是在STEAM平台下的正版
u盾密码输错六次被锁定
豆角猪肉饺子馅怎么做
《麦克白》、《李尔王》、《奥赛罗》和《哈姆
身份证最后以为的X是大写的还是小写的?那是
【凯旋归来】“凯旋归来”这个词有语法错误吗
怎么找回被删除的文件
草莽英雄是什么意思
【btwhat】...thefamilydoctor.AwhatBthatCwh
【草酰乙酸】草酰乙酸的来源和去路
用手机视频软件优酷缓存视频但显示本地文件损
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?