编程方式从数据库建立TreeView菜单

     最近老师讲解了一下TreeView控件的使用,结合membership和RBAC模式实现用户权限管理,大致思想就是将每个角色可以访问的页面存入数据库,通过编程实现不同角色不同的菜单,首先数据库表需要有字段Pid,Pname,Purl,Parentid基本字段,
/// <summary>
        /// TreeView生成--@by坤
        /// </summary>
        /// <param name="Pid">父节点Id</param>
        /// <param name="T">节点</param>
        public void CreateTree(string Pid, TreeNode T)
        {
           // SiteMapNodeItem sitenode = ;

           BLL.Privilege pp= new Privilege();
           DataSet pre = pp.GetList("ParentId='" + Pid + "'");//根节点查询
           if (Pid == "0")
           {
               foreach (DataRow dr in pre.Tables[0].Rows)  //遍历根节点
               {
                   TreeNode Tn = new TreeNode();
                   Tn.Text = dr["Pname"].ToString();
                   CreateTree(dr["Pid"].ToString(), Tn);  //递归查询下一层节点
                   TreeView1.Nodes.Add(Tn);
               }
           }
           else
           {
               foreach (DataRow dr in pre.Tables[0].Rows)   //不是根节点
               {
                   TreeNode ChildT = new TreeNode();
                   ChildT.Text = dr["Pname"].ToString();
                   ChildT.NavigateUrl = dr["Purl"].ToString();
                   CreateTree(dr["Pid"].ToString(), ChildT);
                   T.ChildNodes.Add(ChildT);
               }
           }

        }

在Page_load中调用函数,
 if (!IsPostBack)
            {
                TreeNode T = new TreeNode();
                CreateTree("0", T); //调用TreeView生成函数
            }

但是函数设计上还不够完美,应该设计函数出口直接返回TreeView,函数复用性不高,还要修改!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值