CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

小女子给出全部分告急.一个权限分配问题

楼主wfz131(wfz131)2006-03-04 11:30:44 在 .NET技术 / ASP.NET 提问

我想实现这种功能  
   
    口   大菜单名(从数据库提取)  
              口   小菜单名(从数据库提取)   口   小菜单名   口   小菜单名   口   小菜单名  
    口   大菜单名(从数据库提取)  
              口   小菜单名(从数据库提取)   口   小菜单名   口   小菜单名   口   小菜单名  
    口   大菜单名(从数据库提取)  
              口   小菜单名(从数据库提取)   口   小菜单名   口   小菜单名   口   小菜单名  
    口   大菜单名(从数据库提取)  
              口   小菜单名(从数据库提取)   口   小菜单名   口   小菜单名   口   小菜单名  
   
                                                              提     交  
   
  选中前面的复选框后,点击提交按钮后把值送到数据库(用户权限分配表)  
  有三个数据库(大菜单,小菜单,用户权限分配表)  
  哪位好心人有例子或源码,给我一个,也可以在线讨论我的QQ:88252631  
  谢谢. 问题点数:90、回复次数:28Top

1 楼WeekZero(∮小气的鬼∮)回复于 2006-03-04 11:46:33 得分 2

使用微软的treeview生成树,使用其中带checkbox的方式很容易就实现了Top

2 楼zhongkeruanjian(编程亮子)回复于 2006-03-04 12:03:14 得分 4

大菜单,小菜单?  
  这个就好像不太好,应该都在一个菜单表里,只不过菜单的类型和层次不一样而已  
   
  Top

3 楼wfz131(wfz131)回复于 2006-03-04 12:06:14 得分 0

说说怎么解决好吗  
  Top

4 楼fine06(^_^)回复于 2006-03-04 12:09:15 得分 2

treeview在asp.net中好像不能用,  
  用个repeater吧,不会很难的.Top

5 楼lizi02(冬虫夏草)回复于 2006-03-04 12:11:27 得分 2

用treeview就可以搞定了啊  
  下个微软得控件   2003得Top

6 楼wfz131(wfz131)回复于 2006-03-04 12:12:18 得分 0

fine06能说一下怎么实现吗Top

7 楼wfz131(wfz131)回复于 2006-03-04 12:21:30 得分 0

关键说一下如何取值送到数据库  
  Top

8 楼winner2050(找工作中,各位XD收到风,M一下。)回复于 2006-03-04 13:03:16 得分 3

取值送到数据库就简单罗。  
  用for   each一下checkbox  
  Top

9 楼MonkWang(象写情书一样写程序)回复于 2006-03-04 13:16:27 得分 2

学习  
  帮顶Top

10 楼GSXiaoXiao(牧羊人)回复于 2006-03-04 13:35:19 得分 2

功能是什么?你想实现什么?  
  应该不难的  
   
  根据提交的大菜单名和用户来显示可用的小菜单名?Top

11 楼rola(林)回复于 2006-03-04 14:01:39 得分 2

到微软的网站上下载   IE   web   control,其中好像有个TreeView插件(记不太清楚了,好像是),用这个插件就可以搞定,用法与.net中的treeview几乎相同,以前用过,感觉不错Top

12 楼flyinging(一路走来)回复于 2006-03-04 14:10:30 得分 2

不会,帮顶Top

13 楼coldpanth(^War3^)回复于 2006-03-04 14:59:45 得分 3

DataList可以实现Top

14 楼jhpxf(我是一是小小鸟,想要飞却飞不高。)回复于 2006-03-04 15:52:36 得分 2

顶下,好象是目录树的概念了。有点难度了Top

15 楼tidydavid(tidy)回复于 2006-03-04 19:55:55 得分 10

WeekZero(星期零)   说的方法很好的,以前做得项目中用过的,值得推荐。  
  建议你把大菜单,小菜单两张表合成一张表,基本结构例如  
    菜单代码                       菜单名称          
    01                                     大功能1  
    01001                     大功能1中的小功能1  
    01002                     大功能1中的小功能2  
  这样做是为了方便在用户--权限对招表中保存的数据比较清晰  
    用户名                   菜单代码  
    test                         01  
    test                         01001        
      菜单代码都是一张表中的数据,否则菜单代码是两张表的数据将会给程序带来不小的麻烦的。  
     
   
   
               
   
  Top

16 楼hyena041(陷入自己的思维中,找不到自己了)回复于 2006-03-04 20:13:30 得分 10

大菜单和小菜单都放在同一个表中  
  增加parentID来对应每个小菜单的父菜单  
  父菜单的parentID可以设置为0,作为标识  
   
  用户和具体的权限有一张表来维护  
  用户只需要对应小菜单就可以了  
  Top

17 楼tidydavid(tidy)回复于 2006-03-04 20:24:34 得分 10

搂主,既然项目规定不能把大小菜单合成一个,那就建立一个大小菜单联合视图,解决查询的不便。  
  从客户端取得权限后将菜单名称和菜单属性(大或者小)一起放入   用户-权限表中。  
  这样做可以实现   用户名-权限     实际转变成   用户名--视图记录   的简单对应关系  
   
   
  Top

18 楼xyunsh(学海无涯,回头是岸)回复于 2006-03-04 21:39:26 得分 2

用PlaceHolder,根据数据库中的内容动态生成Checkbox添加到PlaceHolder中Top

19 楼xyunsh(学海无涯,回头是岸)回复于 2006-03-04 21:46:45 得分 20

参考一下:  
      private   void   AddCheckControl(   DataRowView   drv,   Int32   rid,   Int32   depth   )  
                  {                          
                          //图标  
                          HtmlImage   icon   =   new   HtmlImage();  
                          icon.Border   =   0;  
                          icon.Src   =   "../../../Images/Resource/"   +   ((ResourceCode)rid).ToString()   +   ".gif";  
   
                          //换行和空格  
                          Literal   header   =   new   Literal();  
                          header.Text   =   "<br>";  
                          for(   Int32   i   =   0;   i   <   depth;   i++   )  
                          {  
                                  header.Text   +=   "&nbsp;&nbsp;&nbsp;&nbsp;";  
                          }  
   
                          //资源名称  
                          Literal   name   =   new   Literal();  
                          name.Text   =   "&nbsp;"   +   drv["Name"].ToString()   +   "&nbsp;&nbsp;";  
                           
                          PlaceHolderList.Controls.Add(   header   );  
                          PlaceHolderList.Controls.Add(   icon   );  
                          PlaceHolderList.Controls.Add(   name   );  
   
                          Resource   rs   =   new   Resource(   rid   );  
                          DataTable   dtPrivilege   =   rs.GetPrivilegeList();  
                          //添加资源可对应的权限  
                          foreach(   DataRow   dr   in   dtPrivilege.Rows   )  
                          {  
                                  //创建一个CheckBox  
                                  HtmlInputCheckBox   cbPrivilege   =   new   HtmlInputCheckBox();  
                                  cbPrivilege.Value   =   dr["InstanceID"].ToString();  
                                  cbPrivilege.Checked   =   IsChecked(   dr["InstanceID"].ToString());//该用户或者角色或者职位是否具有这种权限  
                                  //权限名  
                                  Literal   cbText   =   new   Literal();  
                                  cbText.Text   =   dr["Name"].ToString()   +   "&nbsp;";  
   
                                  PlaceHolderList.Controls.Add(   cbPrivilege   );  
                                  PlaceHolderList.Controls.Add(   cbText   );  
                          }                          
                  }  
   
   
  private   void   ButtonOK_Click(object   sender,   System.EventArgs   e)  
                  {  
                          StringBuilder   str   =   new   StringBuilder();  
                          foreach(   System.Web.UI.Control   ctrl   in   PlaceHolderList.Controls   )  
                          {  
                                  if   (   ctrl   is   HtmlInputCheckBox   )  
                                          if(   ((HtmlInputCheckBox)ctrl).Checked   )  
                                                  str.Append(   ((HtmlInputCheckBox)ctrl).Value   +   ","   );  
                          }  
   
                          if(   str.Length   >   0   )  
                                  str.Remove(   str.Length   -   1,   1   );  
   
                          RuleDB.SetRight(   ResourceType,   ResourceID,   str.ToString()   );  
   
                          Alert(   "权限设置成功!"   );  
                  }Top

20 楼_NET2004(.NET菜鸟)回复于 2006-03-05 08:50:46 得分 2

我的是放在一张表中Top

21 楼yanch1985(罐头)回复于 2006-03-05 13:00:04 得分 2

可以用DATALIST,在ITEMDATABOUND里用大菜单的ID去访问对应的小菜单,绑定个CHECKBOXLISTTop

22 楼Lukiya(路基亚)回复于 2006-03-05 13:34:56 得分 2

………………  
  上当上当,我加怎么是个男的……Top

23 楼nameone(过客)回复于 2006-03-05 15:14:44 得分 2

UPTop

24 楼wfz131(wfz131)回复于 2006-03-05 15:39:03 得分 0

哥哥们,各位有没有现成的例子,帮我一下呀。我都快急死了。Top

25 楼ivan19820109(流星雨)回复于 2006-03-05 15:46:34 得分 0

upTop

26 楼slyly()回复于 2006-03-05 17:20:03 得分 2

DataList   捆   DataListTop

27 楼mrshelly(Shelly)回复于 2006-03-05 18:21:48 得分 2

Lukiya(路基亚)   (   )   信誉:100     2006-3-5   13:34:56     得分:   0      
   
  ………………  
  上当上当,我加怎么是个男的……  
   
   
  =================================  
  我哈我哈我哈哈哈~~~~~~~Top

28 楼wfz131(wfz131)回复于 2006-03-05 18:32:40 得分 0

谢谢哥哥们,我的问题已经解决.谢谢对小女子的关心Top

相关问题

  • 用户权限分配
  • 【100分】求权限分配全过程!
  • 关于CVS的权限分配问题
  • 关于权限分配问题
  • 请问如何分配表的权限?
  • SQL Server权限和应用程序权限分配问题!!
  • WindowsXP下面能否分配访问NTFS目录的权限?
  • 菜鸟求救!关于权限分配问题?
  • sqlserver2000恢复后,如何重新分配用户权限?
  • 如何把目录的写权限分配给用户

关键词

  • 数据库
  • 用户
  • 代码
  • 数据
  • 解决
  • 菜单
  • 权限
  • 口小菜单名
  • 数据库提取
  • 表

得分解答快速导航

  • 帖主:wfz131
  • WeekZero
  • zhongkeruanjian
  • fine06
  • lizi02
  • winner2050
  • MonkWang
  • GSXiaoXiao
  • rola
  • flyinging
  • coldpanth
  • jhpxf
  • tidydavid
  • hyena041
  • tidydavid
  • xyunsh
  • xyunsh
  • _NET2004
  • yanch1985
  • Lukiya
  • nameone
  • slyly
  • mrshelly

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo