1。问题
    我做的一个项目,他的导航栏是可以控制的,保存在数据库中,每一栏有相应的功能,例如:用户列表有增删改,考勤统计只有查询功能。我现在要对各个模块的每个功能进行控制,例有的用户在用户列表里只能修改,有的用户在用户列表里只能新增。
2。数据库表
   ID            唯一标识,主键
   MenuCode      菜单代码
   ParentId      上级菜单标识
   Right         可拥有权限值
   MenuName      菜单名称
   Url           连接路径
   MenuLevel     菜单级别
3.操作思路
   要求把这些菜单以树的形式显示,并根据Right(可拥有权限)显示每个菜单可执行的操作(增、删、改和查询),在相应的操作(增、删、改和查)前的复选框前打勾,对用户进行授权,请问该符合实现    树形式:
       权限管理
          系统管理
            用户管理  ([]增 []删 []改)
            角色管理  ([]增 []删 []改)
          财务管理
            收款统计  ([]查询)
            月度营收目标  ([]查询)以上树形式中的中括号代表复选矿,例我现在对用户管理中的“增”前打勾,则表示指定的用户在用户管理里面只能执行“增”操作,依次类推,请问该如何实现,望大家踊跃帮忙,兄弟不胜感激

解决方案 »

  1.   

    将“用户管理”作为一个对象【可以做到系统复用】,将“权限”作为该对象的一个属性。
    假设该属性为int型,就通过微操作来判断该MenuItem是否该显示。新增: 2^0 = 1, 
    删除:2^1 = 2,
    修改:2^2 = 4,
    如果有新增、修改的权限 该属性值为5
    判断: 5 & 1 = 1 表示有新增操作。
      

  2.   

    界面显示过程跟树型显示过程相似。
    首先获取用户ID,根据用户ID获取他所具有的权限值(对应的功能ID,既菜单ID)。
    然后遍历多级菜单,把菜单ID等于对应的功能ID的菜单(包括父菜单)显示出来。
    因为是动态显示,一般做法是在后台动态地把要显示的菜单html代码组织好,再显示到页面里。