【原创】MVC+ZTree实现权限树的功能
今天自己采用MVC+ZTree的技术实现权限树的功能,有需要的可以收藏一下。
1、需要引用的JS 文件
<link href="~/Content/ZTree/css/demo.css" rel="stylesheet" />
<link href="~/Content/ZTree/css/metroStyle/metroStyle.css" rel="stylesheet" />
<script src="~/Content/ZTree/js/jquery.ztree.core.js"></script>
<script src="~/Content/ZTree/js/jquery.ztree.excheck.min.js"></script>
2、html代码
<div class="form-group">
<div class="label">
<label>权限树:</label>
</div>
<div class="field">
<ul style="width:400px;height:200px;" id="treeDemo" class="ztree"></ul>
</div>
</div>
3、JS代码
<script type="text/javascript"> var setting = {
async: {
enable: true,
url: '/RoleToPerssion/GetPerssionTree',//异步加载时的请求地址
autoParam: ["roleid"],//提交参数
type: 'get',
dataType: 'json'
},
check: {
enable: true, //true / false 分别表示 显示 / 不显示 复选框或单选框
autoCheckTrigger: true, //true / false 分别表示 触发 / 不触发 事件回调函数
chkStyle: "checkbox", //勾选框类型(checkbox 或 radio)
//chkboxType: { "Y": "p", "N": "s" } //勾选 checkbox 对于父子节点的关联关系
},
checkable: true,
showIcon: true,
showLine: true,
data: {
simpleData: {
enable: true
}
},
expandSpeed: "",
callback: {
onClick: zTreeOnClick
}
}; $(document).ready(function () {
$.ajax({
url: '/RoleToPerssion/GetPerssionTree?roleid=""',//异步加载时的请求地址
type: 'get',
dataType: 'json',
success: function (data) {
$.fn.zTree.init($("#treeDemo"), setting, data);
}
});
}); //单击时获取zTree节点的Id,和value的值
function zTreeOnClick(event, treeId, treeNode, clickFlag) {
// var treeValue = treeNode.Id + "," + treeNode.name;
//alert(treeNode.Id + "," + treeNode.name);
};
//获取选中value值
function GetIDs() {
var treeObj = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = treeObj.getCheckedNodes(true),
v = "";
var ids = "";
for (var i = 0; i < nodes.length; i++) {
v += nodes[i].name + ",";
if (nodes[i].PId != "0") {
ids += nodes[i].Id + ",";
}
}
}
</script>
4、Mvc后台主要代码
public class PerssonTreeModel
{
public string Id { get; set; }
/// <summary>
/// 权限名称
/// </summary>
public string name { get; set; }
public string PId { get; set; }
/// <summary>
/// 子节点
/// </summary>
public List<PerssonTreeModel> children { get; set; }
/// <summary>
/// 是否有复选框
/// </summary>
public bool nocheck { get; set; }
/// <summary>
/// 是否展开节点
/// </summary>
public bool open { get; set; }
}
/// <summary>
/// 获取目录树的json
/// </summary>
/// <param name="roleid"></param>
/// <returns></returns>
public JsonResult GetPerssionTree(string roleid)
{
var parentlist = perssionbll.GetAllList().Where(m=>m.ParentId=="").ToList();
var childrenlist = perssionbll.GetAllList().Where(m => m.ParentId != "").ToList();
var result = new List<PerssonTreeModel>();
if (parentlist!=null && parentlist.Count>)
{
foreach(var item in parentlist)
{
result.Add(new PerssonTreeModel {
Id = item.id,
name = item.Title,
PId = item.ParentId,
nocheck = true,
open = true,
children = GetChildrenList(item.id,childrenlist)
});
}
}
return Json(result,JsonRequestBehavior.AllowGet); }
/// <summary>
/// 获取一级权限下面的子节点
/// </summary>
/// <param name="id"></param>
/// <param name="list"></param>
/// <returns></returns>
public List<PerssonTreeModel> GetChildrenList(string id, List<T_Permissions> list)
{
var result = new List<PerssonTreeModel>();
list = list.Where(m => m.ParentId == id).ToList();
if (list != null && list.Count > )
{
foreach (var item in list)
{
result.Add(new PerssonTreeModel
{
Id = item.id,
name = item.Title,
PId = id,
open = false,
nocheck = false,
children = null
});
}
}
return result;
}
5、最终效果图:
【原创】MVC+ZTree实现权限树的功能的更多相关文章
- 基于SSM的RBAC权限系统(1)-利用ajax,bootstrap,ztree完成权限树功能
仅支持回显以及选择,不支持在树中的编辑 搭建后台回显以及修改的模块 JSON数据封装 public class Msg { private int code; private String msg; ...
- 爱上MVC3~MVC+ZTree实现对树的CURD及拖拽操作
回到目录 上一讲中,我们学习了如何使用zTree对一棵大树(大数据量的树型结构的数据表,呵呵,名称有点绕,但说的是事实)进行异步加载,今天这讲,我们来说说,如何去操作这棵大树,无非就是添加子节点,删除 ...
- MVC小系列(十五)【MVC+ZTree实现对树的CURD及拖拽操作】
根据上一讲的可以加载一棵大树,这讲讲下如果操作这颗大树 <link href="../../Scripts/JQuery-zTree/css/zTreeStyle/zTreeStyle ...
- MVC+ZTree实现对树的CURD及拖拽操作
上一讲中,我们学习了如何使用zTree对一棵大树(大数据量的树型结构的数据表,呵呵,名称有点绕,但说的是事实)进行异步加载,今天这讲,我们来说说,如何去操作这棵大树,无非就是添加子节点,删除节点,编辑 ...
- 不一样的ZTree,权限树.js插件
每一个有趣的创新,都源于苦逼的生活. 在最近的工作中,遇到一个做权限管理筛选的需求.简单总结需求:1展示一个组织中的组织结构2通过点击组织结构中的任意一个节点可以向上向下查询对应的组织结构 如果你不想 ...
- 爱上MVC3~MVC+ZTree大数据异步树加载
回到目录 理论部分: MVC+ZTree:指在.net MVC环境下进行开发,ZTree是一个jquery的树插件 大数据:一般我们系统中,有一些表结构属于树型的,如分类,地域,菜单,网站导航等等,而 ...
- 文件夹管理工具(MVC+zTree+layer)
文件夹管理工具(MVC+zTree+layer)(附源码) 写在前 之前写了一篇关于 文件夹与文件的操作的文章 操作文件方法简单总结(File,Directory,StreamReader,St ...
- Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)
简单介绍 关于SignalR的简单实用 请参考 Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室) 在上一篇中,我们只是介绍了简单的消息推送,今天我们来修改一下,实现 ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树
业务系统里经常会需要计算类似的树形权限树的业务需求 1:往往会有一些需求,a 对 b 有权限, b对c 有权限, 等等. 2:还需要很直观的看到,整个权限的树形关系,一目了然的那种. 3:程序调用简单 ...
随机推荐
- vue computed计算属性和watch监听属性解疑答惑
computed计算属性 计算属性类似于方法,用于输出data中定义的属性数据的结果,data数据变化时,计算属性的结果会同步变化,需要注意的是计算属性不可与data定义的属性同名. 相比于方 ...
- 运维工具pssh和pdsh安装和使用
1. pssh安装与使用 1.1 pssh安装 [root@server]# wget http://peak.telecommunity.com/dist/ez_setup.py [root@ser ...
- #218 Iterate with JavaScript For Loops
一个条件语句只能执行一次代码,而一个循环语句可以多次执行代码. JavaScript 中最常见的循环就是“for循环”. for循环中的三个表达式用分号隔开: for ([初始化]; [条件判断]; ...
- pycharm断点应用
1.在需要打断点行处,单击鼠标左键打断点 2.调试程序开始,在第一个断点之前停止 3.跳过第一个断点进入到下一个断点
- Snapshot Types
Volume managers Some Unix systems have snapshot-capable logical volume managers. These implement cop ...
- JavaScript(变量、作用域和内存问题)
JavaScript是一个变量松散型的语言.(不像Java一样强类型语言.) JavaScript变量包括两种:基本类型(简单的数据段)和引用类型(对象). 一.基本数据类型(5种) Undefine ...
- Dubbo 源码分析 - 自适应拓展原理
1.原理 我在上一篇文章中分析了 Dubbo 的 SPI 机制,Dubbo SPI 是 Dubbo 框架的核心.Dubbo 中的很多拓展都是通过 SPI 机制进行加载的,比如 Protocol.Clu ...
- express使用记录
express使用记录 文章用啥写?→→ VsCode. 代码用啥写?→→ VsCode. 编辑器下载:VsCode 一.windows下安装node.js环境: 下载地址 相比以前搭过的服务端语言的 ...
- 程序员跳槽有一份好的简历,offer让你拿到手软
作者:果汁简历 工欲善其事必先利其器,这是自古以来的道理,所以如果想找到一份好的工作,一定要先整理一份好的简历. 模板 写简历首先要有一个好的模板,我们做技术的不同于 UX,UED,我们不需要那么花哨 ...
- Java开发面试题,3年工作经验的Java程序员面试经
一.Java基础部分 1.使用length属性获取数组长度,public.private.protected.friendly区别 2.Collection和Collections区别 3.Strin ...