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

来源:互联网 发布:5230手机加密软件 编辑:程序博客网 时间:2024/06/08 18:36
     最近老师讲解了一下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,函数复用性不高,还要修改!
原创粉丝点击