一个oa系统中有类似如下功能导航
<ul>
    <li><a href="">增加用户</a></li>
    <li><a href="">删除用户</a></li>
    <li><a href="">编辑用户</a></li>
</ul>
<ul>
    <li><a href="">增加部门</a></li>
    <li><a href="">删除部门</a></li>
    <li><a href="">编辑部门</a></li>
</ul>
…………………………(省略)
该系统使用人数较多(大约3000人),故功能导航菜单不考虑用asp.net控件实现(为效率与速度),先求根据不同权限隐藏相应导航菜单的示例,要求考虑效率与简洁。
if (session["permissionid"]==1)
{
    增加用户菜单显示
}
if (session["permissionid"]==2)
{
    修改用户菜单显示
}
如上的方式就不用说了,有没有其他的解决方案?

解决方案 »

  1.   

    3000人并不多呀,用.net会影响速度???那你打算用什么??
    最简单的方法就是:
    前台:
    <ul >
        <li id="adduser" runat="server"><a href="">增加用户</a></li>
        <li id="deluser" runat="server"><a href="">删除用户</a></li>
        <li id="edituser" runat="server"><a href="">编辑用户</a></li>
    </ul>
    后台:
    根据权限控制相就LI的显示。
    if(session["permissionid"].ToString()=="1")
    {
    adduser.visable=True;
    }
      

  2.   

    两个MasterPage,运行时根据权限指定不同的MasterPage也可以啊。
      

  3.   

    到 html 和 javascript 论坛上去问吧。
      

  4.   

    我以前想过 用导航控件绑定多个对应权限的xml文件,根据权限决定要绑定哪个作为导航控件的数据源
    这样容易维护,想改动某个权限显示/隐藏的菜单项只要修改对应xml文件就行了,不用动cs代码不过也只是设想,从来没这么做过。一是很少用到导航控件,二是没这需要,即使 用导航控件也不必隐藏,因为权限肯定是另外做到每个功能模块或每个页面的(隐藏只是看不见而已不能阻止别人在地址栏输入网址访问),既然别人不能访问某个模块或某个页面,那么就算他看到也没啥。如果你追求界面的清爽当然隐藏了也行