树状结构

it2022-05-10  169

我用的是三层架构

 

dal层

 

public class pdal    {        public static DataTable view(string rpname)        {            string sql = "select * from rp ,p where rp.rppid=p.pid and p.pnodeld=0 and rpname='"+rpname+"'";            return help.helps.GetDataSet(sql);        }        public static DataTable views(int nodeld, string rpname)        {            string sql = "select * from rp,p where rp.rppid=p.pid and p.pnodeld='"+nodeld+"'and rpname ='"+rpname+"'";            return help.helps.GetDataSet(sql);        }    }

 

bll层

 

        public static DataTable view(string rpname)        {            return pdal.view(rpname);        }

 

        public static DataTable views(int nodeld, string rpname)        {            return pdal.views(nodeld, rpname);        }

 

表 rp 和 p       表rp中 rpid是主键  rppid是外键       表p中pid是表rp中rppid的主键

 

rp                                                           p

 

rpid        rpname   rppid                   pid      pname       purl                   porder      pnodeld

 

 角色id     角色名     拥有权限              

1             a            1                         

2             c            1                         

3             a            3                           

4             b            2

5             b            4                       6             c            4

 

权限id   权限名称    跳转的页面路径      节点排序     父节点

 1         添加                null                  1             0

 2        删除                 null                  2              0 

3         添加员工           null                  1              1

4         删除员工           null                  2              2

前台就一个 TreeView1空间                                             

 

后台代码

 

  protected void Page_Load(object sender, EventArgs e)        {            view();        }        private void view()        {            TreeView1.Nodes.Clear();            {                DataTable users = pbll.view("b");  //b是输入的值  可以用session来传                foreach (DataRow dr in users.Rows)                {                    TreeNode er = new TreeNode();                    er.Text = dr["pname"].ToString();                    er.Value = dr["pid"].ToString();                    //er.NavigateUrl=dr["url"].ToString();//跳转页面   这个没有业面可以省略  如果要跳转  在表p中填入路径就可以                    TreeView1.Nodes.Add(er);//父节点

 

                    DataTable usert = pbll.views(int.Parse(dr["pid"].ToString()), "b");                    foreach (DataRow ds in usert.Rows)                    {                        TreeNode re = new TreeNode();                        re.Text = ds["pname"].ToString();                        re.Value = ds["pid"].ToString();                        er.ChildNodes.Add(re);//子节点                    }                }            }        }

转载于:https://www.cnblogs.com/jjxxtt/archive/2010/11/12/1875466.html


最新回复(0)