递归动态生成树

public void CreateRootTree()
  {
   string strsql="";

   SqlHelper helper=new SqlHelper();

   DataSet ds=new DataSet();

   strsql = "select func_no,func_name,func_url,expanded,node_type from T_FUNC_TREE where parent_func_no='0' and active='Y' order by func_no";

            ds = helper.getDataSet(strsql,null,"DataSet",System.Data.CommandType.Text);

   for (int i=0;i<ds.Tables[0].Rows.Count;i++)
   {
    trvMenu.Nodes.Add(CreateSubTree(Convert.ToInt32(ds.Tables[0].Rows[i]["func_no"]),ds.Tables[0].Rows[i]["func_name"].ToString().Trim(),ds.Tables[0].Rows[i]["func_url"].ToString().Trim(), Convert.ToBoolean(ds.Tables[0].Rows[i]["expanded"]),ds.Tables[0].Rows[0]["node_type"].ToString().Trim()));
   }   
  }

  public TreeNode CreateSubTree(int func_no,string func_name,string func_url,bool expanded,string node_type)
  {
   TreeNode rootNode=new TreeNode();
   SqlHelper helper=new SqlHelper();
   DataSet ds=new DataSet();
   rootNode.Text = func_name;
   rootNode.Type = node_type;
   rootNode.Expanded = expanded;
   rootNode.NavigateUrl = func_url;
         string strsql = "select func_no,func_name,func_url,expanded,node_type from T_FUNC_TREE where parent_func_no='" + func_no + "' and active='Y' ";
            ds = helper.getDataSet(strsql,null,"DataSet",System.Data.CommandType.Text);

   if (ds.Tables[0].Rows.Count > 0)
   {
    TreeNode childNode=new TreeNode();
    for (int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
     childNode = CreateSubTree(Convert.ToInt32(ds.Tables[0].Rows[i]["func_no"]),ds.Tables[0].Rows[i]["func_name"].ToString().Trim(),ds.Tables[0].Rows[i]["func_url"].ToString().Trim(), Convert.ToBoolean(ds.Tables[0].Rows[i]["expanded"]),ds.Tables[0].Rows[0]["node_type"].ToString().Trim());
      if (childNode!=null)
      {
       rootNode.Nodes.Add(childNode);
      }
    }
   }
   return rootNode;
  } 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值