【原創】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.pswp.cn/news/272679.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272679.shtml
英文地址,請注明出處:http://en.pswp.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) 一個類型中的一部分代碼為自動化工具生成的代碼&…

oracle中的輸入 amp,Oracle之SQL學習

1.Oracle 更改會話(更改oracle中顯示日期的方式)SQL> alter session set NLS_date_formatYYYY-MM-DD;2.使用綁定變量來輸入記錄(可以重復執行&#xff0c;輸入記錄)&#xff1a;SQL> insert into test1(id,name)2 values(&id, &name);輸入 id 的值: 5輸入 name…

線段的平移和旋轉

//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…

Net中的Request和Response對象的理解

Request 和 Response 對象起到了服務器與客戶機之間的信息傳遞作用。Request 對象用于接收客戶端瀏覽器提交的數據&#xff0c;而Response 對象的功能則是將服務器端的數據發送到客戶端瀏覽器。一、Request對象的五個集合&#xff1a;QueryString&#xff1a;用以獲取客戶端附在…

研華工控機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;由于字符集…

防止SQL注入式攻擊的筆記

SQL注入式攻擊是指利用設計上的漏洞攻擊系統。如果動態生成SQL語句時沒有對用戶輸入的數據進行過濾&#xff0c;便會使SQL注入式攻擊得逞。例如用下面的SQL語句判斷用戶名和密碼&#xff1a;txtsql"select * from user_info where userid"&txtuserid &"…

linux輸入一個用戶看是否在工作,linux下的用戶管理詳解

linux下的用戶管理詳解useradd 命令詳解添加用戶想要對linux下面的帳號了解的話首先必須要了解的4個配置文件[rootlocalhost /]# cat /etc/passwd首先我們需要了解的是用戶帳號的配置信息/etc/passwd里面的內容每個字段都以:分割&#xff0c;下面我們詳細的看看每個字段的意思r…

Java命令學習系列(零)——常見命令及Java Dump介紹

Java命令學習系列&#xff08;零&#xff09;——常見命令及Java Dump介紹 一、常用命令&#xff1a; 在JDK的bin目彔下,包含了java命令及其他實用工具。 ? jps:查看本機的Java中進程信息。 ? jstack:打印線程的棧信息,制作線程Dump。 ? jmap:打印內存映射,制作堆Dump。 ? …

優秀程序員的十個習慣

在這個世界上&#xff0c;有數百萬的人熱衷于軟件開發&#xff0c;他們有很多名字&#xff0c;如&#xff1a;軟件工程師&#xff08;Software Engineer&#xff09;&#xff0c;程序員&#xff08;Programmer&#xff09;&#xff0c;編碼人&#xff08;Coder&#xff09;&…

linux下jmap 內存命令,Linux下jmap命令查看內存使用

Linux下jmap命令查看內存使用jmap -heap 1234(1234為進程號)jmap是JDK自帶的一個工具&#xff0c;非常小巧方便&#xff0c;其支持參數如下&#xff1a;-heap打印heap空間的概要&#xff0c;這里可以粗略的檢驗heap空間的使用情況。例&#xff1a;jmap -heap 12345輸出&#xf…

BZOJ3144: [Hnoi2013]切糕

題目&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id3144 把每一條z軸都拿出來&#xff0c;s->(x,y,1),cf[x][y][1];(x,y,k)->(x,y,k1),cf[x][y][k];(x,y,r)->t,cinf 然后對于四聯通的點&#xff0c;(x,y,z)->(x,y’,z-d) 似乎這叫經典的最小割模型…

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

世界上本來沒有計算機&#xff0c;工程師創造了它。為了讓告訴計算機需要做什么事情&#xff0c;工程師發明了程序設計語言。簡單粗暴的編程&#xff1a;C語言&#xff1a;用來學編程&#xff1b;C語言&#xff1a;用來使勁兒學編程&#xff1b;C#&#xff1a;用來在windows操作…

安卓linux交叉編譯,Linux Ubuntu下用Android NDK 生成獨立交叉編譯鏈

本文主要介紹使用Android NDK生成獨立交叉編譯鏈&#xff0c;然后使用獨立交叉編譯鏈編譯Android程序下載NDK下載與自己操作系統相吻合的版本 下載地址解壓到安裝目錄(如~/myndk):tar -zxvf android-ndk-r14b-linux-x86_64將NDK的根目錄生成一個環境變量打開~/.bashrcw文件&…

數據結構——各排序算法的比較

1.從時間復雜度比較   從平均時間復雜度來考慮&#xff0c;直接插入排序、冒泡排序、直接選擇排序是三種簡單的排序方法&#xff0c;時間復雜度都為O(n2)&#xff0c;而快速排序、堆排序、二路歸并排序的時間復雜度都為O(nlog2n)&#xff0c;希爾排序的復雜度介于這兩者之間。…

將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. 小心設計數據庫第一個技巧也許看來理所當然…