2、html代码

权限树:

3、JS代码

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 + ",";

}

}

}

4、Mvc后台主要代码

public class PerssonTreeModel

{

public string Id { get; set; }

///

/// 权限名称

///

public string name { get; set; }

public string PId { get; set; }

///

/// 子节点

///

public List children { get; set; }

///

/// 是否有复选框

///

public bool nocheck { get; set; }

///

/// 是否展开节点

///

public bool open { get; set; }

}

///

/// 获取目录树的json

///

///

///

public JsonResult GetPerssionTree(string roleid)

{

var parentlist = perssionbll.GetAllList().Where(m=>m.ParentId=="0").ToList();

var childrenlist = perssionbll.GetAllList().Where(m => m.ParentId != "0").ToList();

var result = new List();

if (parentlist!=null && parentlist.Count>0)

{

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);

}

///

/// 获取一级权限下面的子节点

///

///

///

///

public List GetChildrenList(string id, List list)

{

var result = new List();

list = list.Where(m => m.ParentId == id).ToList();

if (list != null && list.Count > 0)

{

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、最终效果图:

我的博客原文地址:http://www.cnblogs.com/hgmyz/p/7441376.html

公众号原文

【原创】MVC+ZTree实现权限树的功能相关推荐

  1. 不一样的ZTree,权限树.js插件

    每一个有趣的创新,都源于苦逼的生活. 在最近的工作中,遇到一个做权限管理筛选的需求. 简单总结需求: 1展示一个组织中的组织结构 2通过点击组织结构中的任意一个节点可以向上向下查询对应的组织结构 如果 ...

  2. android ztree,ztree实现权限功能(横向显示)

    最近在做权限功能的时候,采用的ztree实现的,但是产品要求最后一层的权限节点要横向显示.开始在网上找的解决方案是用css样式把最后一层的display设置为inline.在我本地电脑上看了下.效果不 ...

  3. 权限树Tree Multiselect 实现添加和编辑功能后端数据递归显示

    Tree Multiselect的基本使用不做介绍,本文主要演示前端接收的后端数据如何在页面上显示和数据交互. 应用场景: 角色权限管理,新增角色时选择权限,编辑角色时更改权限.(编辑和添加都是模态框 ...

  4. 菜鸟不菜学习mvc(二)(权限设计插曲)

    上次运行完以后随便点了点就没看,时隔一个周,继续学习这传说优点>缺点的mvc 本来想按老步子走,链接数据库>增加>查询>更改>删除,但这些东西之前还有个数据库要建立,建咱 ...

  5. (转)一步一步Asp.Net MVC系列_权限管理之权限控制

    原文地址:http://www.cnblogs.com/mysweet/archive/2012/08/05/2623687.html 在权限管理中一个很重要的就是关于权限的拦截验证问题,特别是我们在 ...

  6. PHP:【商城后台管理系统】部署角色管理,角色添加,菜单权限,删除角色功能

    PHP:[商城后台管理系统]部署角色管理,角色添加,菜单权限,删除角色功能 一.角色管理界面 ①首页 ②角色添加 ③角色编辑 ④角色删除 二.部署流程 部署流程 后端采用thinkphp6.0框架,角 ...

  7. vue路由守卫,axios拦截器,权限树

    K15项目案例-后台 1.分页问题 关于分页表格列中的序号问题: <el-table-column type="selection" label="序号" ...

  8. 一次性搞定权限树遍历(通用解决方案)

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/qq_34886352/article/ details/80981714 一.权限树是什么 在写 ...

  9. 索尼a5100_【大象原创】索尼微单最全功能就在这里啦

    索尼A6000 1[大象原创]索尼微单A6000视频说明书 2[大象原创]索尼A6000のWiFi连接 3[大象原创]轻松get七工匠镜头使用技巧 4大象索尼A6000的自动构图绝了 5大象索尼A60 ...

最新文章

  1. Set集合常用方法 遍历Set集合的方法
  2. 使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失
  3. drcom宽带认证登录超时_开发SSO单点登录需要注意的问题
  4. .net core word转pdf_免费在线转换PDF转Word、Word转PDF,办公必备神器
  5. 如何利用开源项目,帮助企业免费搭建小程序官网
  6. default.html文件,default.html
  7. 降低成本是永恒的追求(xamarin)
  8. C++类占字节数讲解
  9. c语言如何制作多线程序,c语言中如何创建多线程。最好有一个例子,谢谢!!...
  10. 全面剖析雅虎助手以及网络实名的流氓行径(2)
  11. 过滤文本中的中英文标点符号、字母、数字、表情
  12. 可在linux运行的酷q,Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
  13. 单片机工程师如何继续提升自己?
  14. 华为笔试题库之较难--难度
  15. 机器学习——数据的共线性问题(岭回归、LASSO回归、逐步回归、主成分回归)
  16. OpencCV制作相框效果
  17. 用Python爬虫做一个短视频+评论下载小工具
  18. 提高浏览器渲染页面速度
  19. vulnhub之raven2
  20. redis连接失败 Connection refused: connect

热门文章

  1. nginx没有worker进程_如何优雅地关闭worker进程?
  2. macbook 移动硬盘无法写入_如何升级MacBook笔记本的SSD硬盘-菜鸟折腾系列一
  3. c语言从入门到精通第四版电子书_C语言从入门到精通(吐血分享)4.pdf
  4. python flask框架教程_Flask框架从入门到实战
  5. js怎么调用wasm_Long.js源码解析
  6. [Vue]组件——通过$emit为组件自定义事件
  7. Redis学习日记-05:SORT命令
  8. setTimeout详解
  9. jQuery中的height()、innerheight()、outerheight()的区别总结
  10. 黑马程序员—————— 多线程