asp.net1.1下权限配置系统从设计到实现(二)

转载 2006年06月09日 18:06:00
此权限系统的涉及到的数据表结构如下:

 

很简单,有图在此一目了然。一个角色对应多个功能,而每个功能又包含很多子功能,所以在设计的时候考虑要用到这5张表。在进行开发之前需要安装和配置TreeView控件,如果不知道怎么用可以参看这里:http://jigee.cnblogs.com/archive/2006/04/14/375623.html;应为实现这样的系统主要问题是解决TreeView的问题,开发的时候考虑到代码的简洁和以后便于维护,所以放在了UserControl中,这个对你可能没什么关系,主要是因为我们的系统还有其他模块要集成在一起,通过动态加载用户控件的形式来完成页面的切换工作!PS:为了不涉及公司代码的外泄,我只将写出一些与公司信息无关但又是实现此功能的核心代码,也就是说只写与TreeView有关的部分代码,OK!不说了开始我们的codeing ! TeeView的HTML如下:

<div id="dvRolesFunction" style="BORDER-RIGHT: #99ccff 2px solid; BORDER-TOP: #99ccff 2px solid; OVERFLOW: auto; BORDER-LEFT: #99ccff 2px solid; WIDTH: 400px; BORDER-BOTTOM: #99ccff 2px solid; HEIGHT: 485px">
<iewc:treeview id="tvRoleFunctions" runat="server"SystemImagesPath="../webctrl_client/1_0/treeimages/" showlines="true" shoplus="true">
</iewc:treeview>
</div>

填充TeeView控件的主要代码如下:

private void FillFuntionAndPointInfo()
{
    
string name, value;
    TreeNode parentTreeNode 
= null;
    TreeNode childTreeNode;
    DataSet ds 
= MappingUser.GetFunctionAndFunctionPoint();
   if (ds != null && ds.Tables[0!= null)
   {
                
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    value 
= Common.GetFieldValue(ds.Tables[0].Rows[i]["functionid"], ""); //为了获得有效的返回值
                    name 
= Common.GetFieldValue(ds.Tables[0].Rows[i]["functionname"], "");//  .DLL不会公开
                    
if (parentTreeNode == null || parentTreeNode.Text != name)
                    {
                        parentTreeNode 
= new TreeNode();
                        parentTreeNode.Text 
= name;
                        parentTreeNode.CheckBox
=true;
                        parentTreeNode.ID 
=value; 
                        parentTreeNode.Expandable
=ExpandableValue.Auto; 
                        tvRoleFunctions.Nodes.Add(parentTreeNode);
                    }
                    value 
= Common.GetFieldValue(ds.Tables[0].Rows[i]["functionpointid"], "").Trim();
                    name 
= Common.GetFieldValue(ds.Tables[0].Rows[i]["functionpointname"], "");
                    
if (value.Length > 0)
                    {
                        childTreeNode 
= new TreeNode();
                        childTreeNode.Text 
= name;
                        childTreeNode.CheckBox
=true
                        childTreeNode.ID  
= value;
                        childTreeNode.Expandable
=ExpandableValue.Auto; 
                        parentTreeNode.Nodes.Add(childTreeNode);
                    }
                }
            }
        }

GetFunctionAndFunctionPoint()方法用到的Sql语句如下:

SELECT   functionid,
                  b.name 
AS functionname,
                  functionpointid,
                  c.name 
AS functionpointname
                   
FROM    Function b (NOLOCK),
                                   
FunctionRelationPoint a (NOLOCK)
                                    
LEFT JOIN FunctionPoint c (NOLOCK) ON a.FunctionPointID = c.id
                                
WHERE    a.FunctionID = b.id
                                
ORDER BY functionid,functionpointid


下次写作预告:
怎么用脚本实现TreeView的父子节点联动和全选的功能,之前我在网上和CSDN找过一个实现父子节点联动效果的方法,可惜是在TreeView.htc文件中实现,由于考虑到项目部署时可能带来问题,干脆自己用javaScript实现。

http://jigee.cnblogs.com/archive/2006/06/08/420792.html

asp.net1.1下权限配置系统从设计到实现(四)

继续上次的吧,本来还有点瞌睡:) (昨晚的德国VS哥队够精彩),还是坚持写完吧.今天说哈怎么实现Select All  TreeView全部节点的功能?怎么实现展开和折叠自如?请看:节点全部选中的实现...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年06月11日 18:20
  • 704

asp.net1.1下权限配置系统从设计到实现(三)

怎么用脚本实现TreeView的父子节点联动功能? 由于Firefox本身的特点,在实现时分别在IE下用脚本实现,在Firefox下用.cs代码实现。由于这两种浏览器兼容性实在不怎么好,艾!     ...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年06月09日 18:06
  • 848

asp.net1.1下权限配置系统从设计到实现(一)

这段时间一直在做一个做权限配置系统,做了这么久收获当然不少,于是有了与大家共同分享的想法。希望给想要了解这方面的朋友一点抛砖引玉的作用,本系统我准备以一系列文章来写,将教会你如何从设计到开发一个完整的...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年06月09日 18:05
  • 1039

从需求到设计(记自已的一次开发经历)

闲来无聊,针对自己之前开发的一个项目中的一个案例,详细的说明一下从分析到设计再到最终完成的一个过程。希望对自己对正在寻求转变的人提供一点帮助。 过程是:分析->设计 迭代开发。 1 需求分...
  • HellDevil
  • HellDevil
  • 2016年07月27日 17:13
  • 1888

用户权限设计(二)——用户认证管理设计方案【转】

标题 ...
  • yifeiyuann
  • yifeiyuann
  • 2006年11月21日 11:04
  • 9065

权限管理 (一) 设计思路分析和实现授权、认证

权限的认识 说起对权限的理解可以说是从肤浅到了解,现在也只是处在了解的水平,先来看这样一个通俗且真实的故事:我们都知道在有体制的公司或者机关单位,给人的体制化特别突出,通俗的说就是官大一级压死人,上...
  • lilongsheng1125
  • lilongsheng1125
  • 2013年11月24日 13:50
  • 4574

UML从需求到实现----用例

关于用例图的概念相信不用我去说了 .能看到这篇文章的都是知道用例图概念的人. UML 中最重要的是什么图呢 ?毫无疑问应该是用例图 ,用例是后期时序图 和实际开发的重要依据. 说明一...
  • lsh6688
  • lsh6688
  • 2011年03月10日 09:21
  • 6022

拒绝从入门到放弃_《Openstack 设计与实现》必读目录

目录目录 关于这本书 必看知识点 最后关于这本书《Openstack 设计与实现》是一本非常值得推荐的书,为数不多的 Openstack 开发向中文书籍中的精品。如果希望从事 Openstack 开发...
  • Jmilk
  • Jmilk
  • 2016年10月07日 17:04
  • 1624

数据权限的设计与实现

最近手上的web项目需要做权限控制,努力了解下,做如下笔记 1.权限分为菜单权限,操作权限,数据权限, 菜单权限即不同用户能够看到的菜单按钮不同,如系统管理员能看到系统管理,用户管理等菜单,而普通...
  • hchaoyangming
  • hchaoyangming
  • 2015年12月08日 19:25
  • 2095

完整的权限管理系统,你有这样完整权限的设计吗?

很多人都知道以角色为基础的权限管理设计(RBAC),但是大部分人似懂非懂,不知道完整的权限管理系统都包括哪些内容。    在此以权限管理的使用场景来说明一下完整的权限管理内容。       一...
  • liangyixin19800304
  • liangyixin19800304
  • 2013年10月08日 12:07
  • 1529
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net1.1下权限配置系统从设计到实现(二)
举报原因:
原因补充:

(最多只允许输入30个字)