如何根据权限表生成二维数组?从网上下了个不错的OA界面,他左边的菜单项是利用JS二维数组静态生成的,如下:
var Menu_Left_Datas=[
[
{'text':'个人事务', 'ico':'2,3', 'action':'CreateMenu(__MenuBody, Menu_Left_Datas[0], 1, 2);', 'hint':''},
{'text':'待办事宜', 'ico':'2,10', 'action':'', 'hint':'全文搜索的描述是这样全文搜索的描述是这样全文搜索的描述是这样全文搜索的描述是38...'},
{'text':'日程安排', 'ico':'3,1', 'action':'setURL("9.htm","1.htm");', 'hint':'全文搜索的描述是这样的....'},
{'text':'工作计划', 'ico':'3,2', 'action':'', 'hint':'全文搜索的描述是这样的....'}
],
[
{'text':'电子邮件', 'ico':'2,6', 'action':'CreateMenu(__MenuBody, Menu_Left_Datas[1], 1, 2);', 'hint':''},
{'text':'收件箱', 'ico':'3,3', 'action':'', 'hint':'全文搜索的描述是这样的....'},
{'text':'发邮件', 'ico':'3,4', 'action':'', 'hint':'全文搜索的描述是这样的....'},
{'text':'已发邮件', 'ico':'3,5', 'action':'', 'hint':'全文搜索的描述是这样的....'},
{'text':'废纸篓', 'ico':'3,6', 'action':'', 'hint':'全文搜索的描述是这样的....'},
{'text':'草稿箱', 'ico':'3,7', 'action':'', 'hint':'全文搜索的描述是这样的....'},
{'text':'通讯录', 'ico':'3,9', 'action':'', 'hint':'全文搜索的描述是这样的....'}
]
  ];
但是我们的项目却需要根据用户的权限生成,即用户包含此权限才列出该菜单,现在权限系统如何做还没定,请大家给点建议,并说明如何与上面的菜单生成方式相结合,小的在此感谢了!!!只要有答案马上结贴,分不够可以再加~~

解决方案 »

  1.   

    权限控制是个比较复杂,因为它涉及到,你要控制到多大的颗粒度,
    比如,.net自带的角色管理(role),最细可以到页面,但是如果要细到页面上的空间的话,那就得自己设计了,网上有些这方面的介绍,你可以查查看。动态生成数组很简单,在客户段看来js是动态语言程序,但是在服务器看来,它只不过是一组字符串罢了,生成页面时注册进取就可以了,你可以查看微软的文档,写的很清楚。
      

  2.   

    我不需要那么精确的权限,只需要对菜单项赋予权限就行了,例如
    ID    菜单名称   地址   父级ID
    然后在有个权限的表,以记录的方式进行权限的分配,如果在表中存在相关记录,则表示有相应权限
    用户ID   菜单ID能否结合上面我的举例和代码给点代码出来,实在是急着要,谢谢了!
      

  3.   

    如果只控制一个级别的菜单,那就简单了。根据登陆用户ID,结合你刚才的那两个表,可以得出属于该用户的菜单名称,地址。
    然后动态构筑这个数组Menu_Left_Datas,其实就是在服务器段构筑字符串了。参照一下链接,把js注册给客户端就可以了。http://www.microsoft.com/china/msdn/library/webservices/asp.net/JAVAwASP2.mspx?mfr=true