zoukankan      html  css  js  c++  java
  • 使用递归实现省市区树形节点加载

          List<MODEL.Areas> list = null;     //定义Areas实体类对象以备接受数据,递归是方法调用方法本身,所以需要定义方法,然后窗体加载的时候调用方法,所以需要在方法体外定义为全局变量
            private void FrmAreas_Load(object sender, EventArgs e)
            {
                BLL.AreasManager bllarea = new BLL.AreasManager();
                list=bllarea.bllareas();    //接受数据
                LoadData(0, null);    //调用方法,从0开始,然后方法中进行递归,一直到循环结束
            }
            void LoadData(int aid,TreeNode parentNode)    //定义方法,定义开始参数和节点参数
            {
                foreach (MODEL.Areas item in list)   //遍历接受的Areas实体对象数据
                {
                    if(item.APid==aid)        //如果Areas对象的APID属性=参数AID
                    {
                        TreeNode node = new TreeNode(item.AName);  //则实例化TreeNode节点,并且调用其构造函数
                        node.Tag = item;    //将Areas实体对象存放进Tag标签中
                        if(parentNode==null)    //如果不存在节点,即控件的第一个节点(根节点)
                        {
                            tvlist.Nodes.Add(node);   //则添加根节点到树控件中
                        }
                        else
                        {
                            parentNode.Nodes.Add(node);  //否则在节点下面添加子节点
                        }
                        LoadData(item.AID, node); //调用方法本身,循环添加子节点
                    }
    
                }
            }
  • 相关阅读:
    树的遍历
    动态规划之背包问题
    Dijkstra算法
    最短路径
    关于数学公式Markdown
    子集数
    O、Θ、Ω
    AT212 P-CASカードと高橋君
    vector的使用方法
    P3512 [POI2010]PIL-Pilots 单调队列的应用
  • 原文地址:https://www.cnblogs.com/ianism/p/4244967.html
Copyright © 2011-2022 走看看