这是我做第
![](/icons/61426yi.gif)
个项目遇到
![](/icons/61426de.gif)
问题:有关权限分配
![](/icons/61426de.gif)
问题
当时客户
![](/icons/61426de.gif)
要求是这样:权限分为父权限和子权限
![](/icons/61426dou.gif)
子权限率属于父权限
![](/icons/61426dou2.gif)
比如员工
![](/icons/61426de.gif)
基本信息管理(父权限)包括增、删、改以及查询(子权限)
![](/icons/61426dou2.gif)
当拥有父权限时则介绍说明至少拥有
![](/icons/61426yi.gif)
个子权限
我当时第
![](/icons/61426yi.gif)
想法就是用TreeViewControl控件来实现
![](/icons/61426dou.gif)
应该还是比较简单
![](/icons/61426de.gif)
![](/icons/61426dou2.gif)
后面做起来发现难度还是有那么
![](/icons/61426yi.gif)
点
![](/icons/61426de.gif)
![](/icons/61426dou.gif)
废了几天
![](/icons/61426de.gif)
时间
废话不多
![](/icons/61426dou.gif)
现在拿出来跟大家分享
![](/icons/61426yi.gif)
下
可以用TreeViewControl控件
![](/icons/61426de.gif)
父节点代表父权限
![](/icons/61426dou.gif)
子节点代表子权限
![](/icons/61426dou.gif)
比如有根节点A
![](/icons/61426dou.gif)
子节点B
![](/icons/61426dou.gif)
子节点C、D、E
![](/icons/61426dou.gif)
如下图所示:
实现
![](/icons/61426de.gif)
效果为:
1、从父节点开始:当父节点被选中时
![](/icons/61426dou.gif)
其子节点则全部被选中;当取消父节点则其子节点全部被取消
![](/icons/61426dou2.gif)
比如选择A
![](/icons/61426dou.gif)
则B、C、D、E全被选中
![](/icons/61426dou.gif)
取消A
![](/icons/61426dou.gif)
则B、C、D、E也全被取消
2、从子节点开始:当选中
![](/icons/61426yi.gif)
个子节点时
![](/icons/61426dou.gif)
则其父节点以及祖父节点等等也被选中;当
![](/icons/61426yi.gif)
个父节点
![](/icons/61426de.gif)
所有子节点都被取消
![](/icons/61426de.gif)
话
![](/icons/61426dou.gif)
父节点也会被取消
![](/icons/61426dou2.gif)
比如C、D、E都被取消
![](/icons/61426dou.gif)
则B也会被取消
![](/icons/61426dou.gif)
B、C、D、E都被取消则A也会被取消
3、最后可以用
![](/icons/61426yi.gif)
个
![](/icons/61426shuzu.gif)
记录各个节点
![](/icons/61426de.gif)
状态
![](/icons/61426dou.gif)
被选中用1来表示
![](/icons/61426dou.gif)
未被选中用0来表示
![](/icons/61426dou2.gif)
![](/icons/61426shuzu.gif)
![](/icons/61426de.gif)
第
![](/icons/61426yi.gif)
个元素记录A
![](/icons/61426de.gif)
状态
![](/icons/61426dou.gif)
第 2个记录B
![](/icons/61426de.gif)
状态等等以此类推
延伸阅读
最新评论