【原创】MVC+ZTree实现权限树的功能

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

4418040-b3b70dfddda9d99c

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

公众号原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集合习题之列出有限集合所有子集

1、题目&#xff08;《离散数学及其应用》第6版P75 20 题&#xff09; 给出可以列出有限集合所有子集的步骤。 2、 解题思路 假设有集合A {a1, a2 … an}&#xff0c;列出其所有子集。 先列出含有1个元素的所有子集&#xff1a;{a1},{a2} … {an}然后列出含有2个元素的所有子…

C# partial 关键字的使用

C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分&#xff0c;分别实现在几个不同的.cs文件中。局部类型适用于以下情况&#xff1a;(1) 类型特别大&#xff0c;不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具生成的代码&…

线段的平移和旋转

//github不会用&#xff0c;试了很久不知道怎么上传代码 #include <iostream> using namespace std;#include <stdlib.h> #include <Eigen/Dense> #include <math.h> using namespace std; using Eigen::MatrixXd; int main() { int option; struct p…

我不问+你不说

阅读原文很多事我不问你不说这就是距离我问了你不说这就是隔阂我问了你说了这就是尊重你想说我想问这就是默契我不问你说了这就是信任很多事情你看到的听到的未必是你想象的那样人生在世多给别人机会解释多些向别人解释的耐心人生会少很多遗憾不问、不说、不解释这不是酷或有个…

怎么安装redhat linux操作系统,红帽RedHat Linux5系统安装指南

介绍如何安装linux操作系统&#xff0c;以目前市场主流的操作系统为例子进行介绍。1、放入安装dvd光盘&#xff0c;然后启动服务器&#xff0c;可得如下画面&#xff1a;2、按enter键&#xff0c;进入如下画面3、选择skip&#xff0c;按enter进入&#xff0c;下面画面&#xff…

研华工控机u盘启动安装linux系统,研华工控机怎么设置u盘启动

本文主要介绍研华IPC如何设置u盘启动研华IPC-610 IPC随XP版一起安装。有时安装控制软件需要在不满意时卸载。卸载未完成&#xff0c;这使得安装无法进行&#xff0c;因此您需要将系统恢复到相对纯粹的时间。通常&#xff0c;USB磁盘启动盘的安装系统首先备份初始纯XP作为备份&a…

UVA - 11732 strcmp() Anyone?左兄弟右儿子trie

input n 2<n<4000 s1 s2 ... sn 1<len(si)<1000 output 输出用strcmp()两两比较si,sj(i!j)要比较的次数&#xff0c;结果在long long范围内&#xff08;相同字符比较两次&#xff0c;不相同字符比较一次&#xff0c;包括\0&#xff09; 做法&#xff1a;由于字符集…

优秀程序员的十个习惯

在这个世界上&#xff0c;有数百万的人热衷于软件开发&#xff0c;他们有很多名字&#xff0c;如&#xff1a;软件工程师&#xff08;Software Engineer&#xff09;&#xff0c;程序员&#xff08;Programmer&#xff09;&#xff0c;编码人&#xff08;Coder&#xff09;&…

如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处

世界上本来没有计算机&#xff0c;工程师创造了它。为了让告诉计算机需要做什么事情&#xff0c;工程师发明了程序设计语言。简单粗暴的编程&#xff1a;C语言&#xff1a;用来学编程&#xff1b;C语言&#xff1a;用来使劲儿学编程&#xff1b;C#&#xff1a;用来在windows操作…

将c程序移植到linux,各位大侠:我把原来在linux运行的c程序移植到HPUNIX上出现了错误...

各位大侠&#xff1a;我把原来在linux运行的c程序移植到HPUNIX上出现了错误(2012-04-11 00:43:47)标签&#xff1a;linuxc程序杂谈各位大侠&#xff1a;我把原来在linux运行的c程序移植到HP_UNIX上出现了错误makefileCC aCC -AA W829 DD64 DAportable-I/ods/app/oracle/produc…

数据库学习建议之提高数据库速度的十条建议

很多网站的重要信息都是保存在数据库中的&#xff0c;用户通过提交访问数据库来获取用户信息。如果数据库速度非常的快&#xff0c;有助于节省服务器的资源&#xff0c;在这篇文章中&#xff0c;我收集了十个优化数据库速度的技巧。0. 小心设计数据库第一个技巧也许看来理所当然…

提高程序员工作效率的11个技巧

“吃苦耐劳”真的是优良品质吗&#xff0c;与你怎么做相比&#xff0c;老板们应该更关心你做了什么、达到的效果。所以&#xff0c;效率&#xff0c;还是效率&#xff0c;希望这些实用小技巧对大家有所帮助。1、两分钟法则如果一件事可以在两分钟内完成&#xff0c;比如回复邮件…

URI和URL及URN的区别

对于URL,大家都比较熟悉&#xff0c;其他两个词就比较陌生了。URI、URL和URN是识别、定位和命名互联网上的资源的标准途径。1989年Tim Berners-Lee发明了互联网&#xff08;World Wide Web&#xff09;。WWW被认为是全球互连的实际的和抽象的资源的集合–它按需求提供信息实体–…

Linux基础-目录与路径

今天我们一起来认识下linux中的目录与路径及操作其的一些常用命令。 说起路径就有绝对与相对之分&#xff0c;虽然简单&#xff0c;我们还是再啰嗦一下&#xff1a; 绝对路径&#xff0c;从系统的根目录/开始的目录都是相对路径&#xff0c;比如/usr/bin、/usr/local 相对路径…

28家知名IT公司名称的由来

28家IT公司名称由来&#xff0c;你知道吗&#xff1f;EMC、VMware、IBM、Oracle、NetApp、Citrix、Cisco、Google、Amazon、Alibaba、UCloud、Tencent、Baidu等著名的存储、备份或云计算行业的IT公司&#xff0c;相信你我都是耳熟能详&#xff0c;但这些公司的名称是如何而来的…

linux创建虚拟声卡,Pear BIOS 安装和配置指引

Pear BIOS 安装指引Pear BIOS是一套硬件模拟系统&#xff0c;操作系统可以在这套模拟硬件上运行。Pear BIOS可以让用户同时安装多套操作系统&#xff0c;使用时可以选择任何一套操作系统启动。在传统电脑系统上&#xff0c;操作系统可以识别并必须识别硬件&#xff1b;而在这套…

关于 ASP.NET 内存缓存你需要知道的 10 点

缓存机制的主要目的是提高应用程序的性能。作为 ASP.NET 开发人员&#xff0c;你可能会意识到 ASP.NET Web 窗体以及 ASP.NET MVC 可以使用 Cache 对象缓存应用程序的数据。这通常被称为服务器端数据缓存&#xff0c;并且常作为框架的内置功能。虽然 ASP.NET Core 中并没有这样…

两张趣图助你理解状态码的含义~

HTTP状态码&#xff08;HTTP Status Code&#xff09;是用以表示网页服务器HTTP响应状态的3位数字代码。我们可以通过查看HTTP状态码来判断服务器状态&#xff0c;常见的有404 、502等&#xff1b;但是其他不是很常见的状态码都代表什么状态呢&#xff1f;下面有两张有趣的图片…

产品经理必备神器推荐

欢迎关注我的公众号&#xff08;同步更新文章&#xff09;&#xff1a;DoNet技术分享平台阅读原文工欲善其事&#xff0c;必先利其器&#xff0c;作为最追求极致体验的产品经理群体&#xff0c;手里有一件趁手的法器&#xff0c;工作起来才会有一种享受般的快感&#xff0c;最近…

JS关闭浏览器 (不弹出提示框)

如果网页不是通过脚本程序打开的&#xff08;window.open()&#xff09;&#xff0c;调用window.close()脚本关闭窗口前&#xff0c;必须先将window.opener对象置为null&#xff0c;否则浏览器&#xff08;IE7、IE8&#xff09;会弹出一个确定关闭的对话框。&#xff1c;script…