<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Ztree</title>
<link href="zTreeStyle.css" rel="stylesheet" />
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="jquery.ztree.all-3.5.min.js"></script> <script type="text/javascript"> //获取页面中的参数
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null)
return unescape(r[2]);
return "";
} var zNodes=[{"key":null,"Id":0,"Pid":-1,"Name":"测试平台","checked":false},{"key":null,"Id":1,"Pid":0,"Name":"模块1","checked":false},{"key":7,"Id":6,"Pid":1,"Name":"模块1-功能1","checked":true},{"key":null,"Id":7,"Pid":1,"Name":"模块1-功能2","checked":false},{"key":null,"Id":8,"Pid":1,"Name":"模块1-功能3","checked":false},{"key":null,"Id":9,"Pid":1,"Name":"模块1-功能4","checked":false},{"key":null,"Id":10,"Pid":1,"Name":"模块1-功能5","checked":false},{"key":null,"Id":2,"Pid":0,"Name":"模块2","checked":false},{"key":7,"Id":11,"Pid":2,"Name":"模块2-功能1","checked":true},{"key":null,"Id":12,"Pid":2,"Name":"模块2-功能2","checked":false},{"key":null,"Id":13,"Pid":2,"Name":"模块2-功能3","checked":false},{"key":null,"Id":14,"Pid":2,"Name":"模块2-功能4","checked":false},{"key":null,"Id":15,"Pid":2,"Name":"模块2-功能5","checked":false},{"key":null,"Id":3,"Pid":0,"Name":"模块3","checked":false},{"key":7,"Id":16,"Pid":3,"Name":"模块3-功能1","checked":true},{"key":null,"Id":17,"Pid":3,"Name":"模块3-功能2","checked":false},{"key":null,"Id":18,"Pid":3,"Name":"模块3-功能3","checked":false},{"key":null,"Id":19,"Pid":3,"Name":"模块3-功能4","checked":false},{"key":null,"Id":20,"Pid":3,"Name":"模块3-功能5","checked":false},{"key":null,"Id":4,"Pid":0,"Name":"模块4","checked":false},{"key":7,"Id":21,"Pid":4,"Name":"模块4-功能1","checked":true},{"key":null,"Id":22,"Pid":4,"Name":"模块4-功能2","checked":false},{"key":null,"Id":23,"Pid":4,"Name":"模块4-功能3","checked":false},{"key":null,"Id":24,"Pid":4,"Name":"模块4-功能4","checked":false},{"key":null,"Id":25,"Pid":4,"Name":"模块4-功能5","checked":false},{"key":null,"Id":5,"Pid":0,"Name":"模块5","checked":false},{"key":7,"Id":26,"Pid":5,"Name":"模块5-功能1","checked":true},{"key":null,"Id":27,"Pid":5,"Name":"模块5-功能2","checked":false},{"key":null,"Id":28,"Pid":5,"Name":"模块5-功能3","checked":false},{"key":null,"Id":29,"Pid":5,"Name":"模块5-功能4","checked":false},{"key":null,"Id":30,"Pid":5,"Name":"模块5-功能5","checked":false}];
var setting = {
check: {
enable: true
},
data: {//数据加载
keep: {
parent: true,
leaf: true
},
simpleData: {
enable: true,
idKey: "Id",
pIdKey: "Pid"
},
key: {
name: "Name"
}
}
}; function Inint() {//初始化加载节点
$.ajax({
global: true,
async: false,
cache: false,
dataType: "json",
url: 'ajax/test.ashx', //通过一般处理程序生成数据
type: "post",
data:{"roleId":GetQueryString("roleId")},
success: function (data) {
zNodes = data;
}
});
}; $(function () {
//Inint();
var treeObj =$.fn.zTree.init($("#powerTree"), setting, zNodes);
treeObj.expandAll(true); }); jQuery().ready(function () {
$("#btnTest").click(function () {
var treeObj = $.fn.zTree.getZTreeObj("powerTree");
var nodes = treeObj.getCheckedNodes(true);
var txt = "";
for (var i = 0; i < nodes.length; i++) { if (nodes[i].isParent) {
//txt.replace(nodes[i].Name, "");
} else {
txt += nodes[i].Id+"-"+nodes[i].Name + ",";
}
}
txt = txt.replace("null,", ""); //替换选择父节点的id
txt = txt.substring(0, txt.length - 1);
alert(txt);
//var strCheckNodes = JSON.stringify(checkNodes);
}); });
</script>
</head>
<body>
<div>
<ul id="powerTree" class="ztree">
</ul>
</div>
<input type="button" name="btnTest" id="btnTest" value="测试节点" />
</body>
</html>
namespace ajax
{
/// <summary>
/// Sys_Role_PowerAllot 的摘要说明
/// </summary>
public class Test : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{ string roleId = context.Request["roleId"]; List<Sys_Module> list = new List<Sys_Module>();
for (int i = ; i < ; i++)
{
Sys_Module s = new Sys_Module();
s.Sys_Module_Id = i+;
s.sm_ParentId = i - i;
s.sm_Name = "模块" + (i + );
List<Sys_Function> funs = new List<Sys_Function>();
for (int j = ; j < ; j++)
{
Sys_Function fun = new Sys_Function();
if (j == )
{
fun.Sys_Function_Id = j + (i + ) * + ;
fun.sf_Description = s.sm_Name + "-功能" + (j + );
fun.sf_AuthorityIndex = ;
funs.Add(fun);
}
fun.Sys_Function_Id = j + (i + ) * + ;
fun.sf_Description = s.sm_Name + "-功能" + (j + ); funs.Add(fun);
}
s.Functions = funs;
list.Add(s);
} BindFunction(allModules, roleId); }
} private string GetAuthorityStr(string nodes)
{
//string[] checkNodes = nodes.Split(',');
//int[] intNodes = Array.ConvertAll<string, int>(checkNodes, delegate(string s) { return int.Parse(s); }); //ArrayList arrNodes = new ArrayList(intNodes);
//arrNodes.Sort();
//int maxNodeId = Convert.ToInt32(arrNodes[arrNodes.Count - 1]); //string sr_AuthorityString = string.Empty;
//List<string> list = new List<string>(); //for (int i = 0; i < maxNodeId+1; i++)
//{
// list.Add("0");
//}
//for (int i = 0; i < intNodes.Length; i++)
//{
// list[intNodes[i]] = "1";
//}
//sr_AuthorityString = string.Join("", list.ToArray()); //sr_AuthorityString = sr_AuthorityString.PadRight(1024, '0'); string[] checkNodes = nodes.Split(','); string sr_AuthorityString = string.Empty;
sr_AuthorityString= sr_AuthorityString.PadRight(, '');
for (int i = ; i < checkNodes.Length; i++)
{
sr_AuthorityString = sr_AuthorityString.Remove(Convert.ToInt32(checkNodes[i])-, ).Insert(Convert.ToInt32(checkNodes[i])-, "");
} return sr_AuthorityString;
} public string BindFunction(List<Sys_Module> modules,string roleId)
{ List<TreeData> funTree = new List<TreeData>();
TreeData treeRoot = new TreeData();
treeRoot.Id = ;
treeRoot.Pid = -;
treeRoot.Name = "测试平台";
char[] cauth = { }; //Sys_Role_Logic roleLogic = new Sys_Role_Logic();
//if (!string.IsNullOrEmpty(roleId))
//{
// Sys_Role role = roleLogic.GetModel(Convert.ToInt32(roleId)); // string authorityStr = role.sr_AuthorityString.Substring(0, role.sr_AuthorityString.LastIndexOf("1")+1);
// //string authorityStr = "000000100100100000001000100000000000000"; // cauth= authorityStr.ToArray(); //} funTree.Add(treeRoot);
for (int i = ; i < modules.Count; i++)
{
AddNodes(funTree, modules[i], treeRoot.Id, cauth);
} return JsonHelper.SerializeObject(funTree);
} public List<TreeData> AddNodes(List<TreeData> trees, Sys_Module module, int pid, char [] authorityStr)
{
TreeData tree = new TreeData();
tree.Id = module.Sys_Module_Id;
tree.Name = module.sm_Name;
if (pid == )
tree.Pid = module.sm_ParentId;
else
tree.Pid = pid;
trees.Add(tree); foreach (Sys_Function fun in module.Functions)
{
trees.Add(AddFunNodes(fun, tree.Id,authorityStr));
} return trees;
} public TreeData AddFunNodes(Sys_Function fun, int pid, char [] authorityStr)
{
TreeData tree = new TreeData();
tree.Id = fun.Sys_Function_Id;
tree.Pid = pid;
tree.Name = fun.sf_Description;
tree.key = fun.sf_AuthorityIndex;
int funAuthorityIndex = Convert.ToInt32(fun.sf_AuthorityIndex - );
if (funAuthorityIndex < authorityStr.Length)
{
if (authorityStr[funAuthorityIndex] == '')
{
tree.@checked = true;
}
else
{
tree.@checked = false;
}
} return tree;
} public bool IsReusable
{
get
{
return false;
}
}
} public class TreeData
{
public int? key { get; set; }
public int Id { get; set; } public int? Pid { get; set; } public string Name { get; set; } public bool @checked { get; set; }
} public class Sys_Function
{
public int Sys_Function_Id{get;set;}
public string sf_Description{get;set;}
public int sf_AuthorityIndex{get;set;}
} public class Sys_Module
{
public int Sys_Module_Id{get;set;}
public int sm_ParentId{get;set;}
public string sm_Name{get;set;}
public List<Sys_Function> Functions{get;set;}
}
}

ztree 获取最下级的子节点内容的更多相关文章

  1. ztree获取当前选中节点子节点id集合的方法(转载)

    本文实例讲述了ztree获取当前选中节点子节点id集合的方法.分享给大家供大家参考.具体分析如下: 要求:获取当前选中节点的子节点id集合. 步骤: 1.获取当前节点 2.用ztree的方法trans ...

  2. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)

    8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...

  3. 解析xml节点属性及子节点内容

    xml样例 <microNearlyThreeYearsOverdueInfo subReportType="13204" subReportTypeCost="9 ...

  4. 获取XML里指定的节点内容信息

    HttpContent bw = new StringContent(StrXml, Encoding.UTF8, "application/Xml"); var Msg = aw ...

  5. 总结获取原生JS(javascript)的父节点、子节点、兄弟节点

    关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul> <l ...

  6. js或jquery如何获取父级、子级、兄弟元素(包括祖级、孙级等)

    原生javascript方法: var a = document.getElementById("dom"); del_space(a); //清理空格 var b = a.chi ...

  7. js获取dom元素的子元素,父元素,兄弟元素小记

    原生jsvar a = document.getElementById("dom"); del_space(a); //清理空格 var b = a.childNodes; //获 ...

  8. zTree异步生成数据时无法获取到子节点的选中状态

    最近在项目中遇到一个问题,需求如下: 根据选中不同的人员(ID)向后台发送ajax请求,通过返回的数据来生成该人员的权限访问树,该树目录最少为3级目录,在生成的时候会自动勾选上次保存过的选中状态,点击 ...

  9. ztree 获取子节点所有父节点的name的拼接

    ztree 获取子节点所有父节点的name的拼接 //获取子节点,所有父节点的name的拼接字符串function getFilePath(treeObj){if(treeObj==null)retu ...

随机推荐

  1. C++面试笔记--STL模板与容器

    1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vec ...

  2. 笔录---果壳中的C#第一章

    ---恢复内容开始--- 笔录---果壳中的C#第二章 2.1 第一个C#程序 1.C#语句按顺序执行,以“:”结尾. Console.WriteLine();     console 为类,Writ ...

  3. RGB565的转换

    RGB色彩模式也就是“红绿蓝”模式是一种颜色标准,是通过对红(R).绿(G).蓝(B)三种颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几 ...

  4. 【转,整理】C# 非托管代码

    .Net Framework 是由彼此独立又相关的两部分组成:CLR 和 类库, CLR是它为我们提供的服务,类库是它实现的功能..NET的大部分特性----垃圾收集,版本控制,线程管理等,都使用了C ...

  5. window 启用 windows 自动登录

    启用 windows 自动登录 方案一: 1.运行命令:control userpasswords2 2.取掉复选框的钩: 方案二:(方案一无效的时候使用) 微软官网地址:https://suppor ...

  6. JDK Linux下安装

    下载jdk-6u45-linux-x64.bin到/root目录下执行./jdk-6u45-linux-x64.bin 会在/root目录下生成 jdk1.6.0_45 文件 之后配置环境变量 编辑/ ...

  7. ubuntu - 官方简体中文wiki,有你想要的ubuntu的一切

    ubuntu官方简体中文wiki:http://wiki.ubuntu.org.cn/%E9%A6%96%E9%A1%B5

  8. web.xml 有什么用?(Java框架)

      1.每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗? 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程 ...

  9. 智能合约安全事故回顾(3)-DOS漏洞导致的KotET事件

    现实世界中的网络都是有带宽限制的,想象一下,一个访问量稳定的网站,突然有人利用某种方式爆发式的将网站的访问量提升,这个时候系统会作何反应?如果系统没有合理的防DOS攻击的方式,这种时候往往会造成服务器 ...

  10. 洛谷P4462 [CQOI2018]异或序列(莫队)

    打广告->[这里](https://www.cnblogs.com/bztMinamoto/p/9538115.html) 我蠢了…… 如果$a_{l} xor ...a_{r}=k$,那么只要 ...