ztree使用心得
一个很好用的Jquery树形控件
官网:http://www.ztree.me/v3/main.php#_zTreeInfo
我主要引用的文件为:
//最新版的JS压缩包
<script src="../Script/jquery-1.11.1.min.js" type="text/javascript"></script>
//Ztree样式
<link href="../CSS/zTreeStyle.css" rel="stylesheet" type="text/css" />
<script src="../Script/jquery.ztree.core-3.5.js" type="text/javascript"></script>
<script src="../Script/jquery.ztree.excheck-3.5.js" type="text/javascript"></script>
根据项目需要主setting设置如下:
var setting1 = {
check: {
enable: true,
chkboxType: { "Y": "ps", "N": "ps" }
},
data: {
simpleData: {
enable: true
}
}
};
var setting = {
check: {
enable: true,
chkboxType: { "Y": "ps", "N": "ps" }
},
async: {
enable: true, // 设置 zTree是否开启异步加载模式 加载全部信息
url: "", // Ajax 获取数据的 URL 地址
autoParam: ["id"] // 异步加载时自动提交父节点属性的参数,假设父节点 node = {id:1, name:"test"},异步加载时,提交参数 zId=1
},
data: { // 必须使用data
simpleData: {
enable: true,
idKey: "id", // id编号命名 默认
pIdKey: "pId", // 父id编号命名 默认
rootPId: // 用于修正根节点父节点数据,即 pIdKey 指定的属性值
}
},
// 回调函数
callback: {
//捕获异步加载出现异常错误的事件回调函数 和 成功的回调函数
onAsyncError: zTreeOnAsyncError,
onAsyncSuccess: function (event, treeId, treeNode, msg) {
var name = $("#<%=hdfValue.ClientID%>").val();
if (name != undefined && name != "") {
//默认选中
$.ajax({
//设置同步
type: "POST",
async: false,
url: '',
data: { type: '', name: name },
dataType: 'json',
success: function (data) {
//对于获取的数据执行相关的操作,如:绑定、显示等
var treeObj = $.fn.zTree.getZTreeObj('Tree1');
for (var i = ; i < data.length; i++) {
var node = treeObj.getNodeByParam("id", data[i].id, null);
treeObj.checkNode(node);
}
}
});
//学校信息
$.ajax({
type: "POST",
async: false,//同步
url: 'CategoryHandler.ashx',
data: { type: 'search', name: name },
dataType: 'json',
success: function (data) {
//对于获取的数据执行相关的操作,如:绑定、显示等
//专业信息;eval将字符串转换为JSON串/
//可以使用http://www.bejson.com/ 检查是否自己的Json串正确与否
$.fn.zTree.init($("#Tree2"), setting1, eval(data[].Specialty));
}
});
}
},
onRename: zTreeOnRename
}
};
// 加载错误提示
function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载错误:" + XMLHttpRequest);
};
function beforeRemove(e, treeId, treeNode) {
return confirm("你确定要删除吗?");
}
function onRemove(e, treeId, treeNode) {
if (treeNode.isParent) {
var childNodes = zTree.removeChildNodes(treeNode);
var paramsArray = new Array();
for (var i = ; i < childNodes.length; i++) {
paramsArray.push(childNodes[i].id);
}
alert("删除父节点的id为:" + treeNode.id + "\r\n他的孩子节点有:" + paramsArray.join(","));
return;
}
alert("你点击要删除的节点的名称为:" + treeNode.name + "\r\n" + "节点id为:" + treeNode.id);
}
function zTreeOnRename(event, treeId, treeNode, isCancel) {
//可以自定义属性,然后根据这些属性来完成操作
alert(treeNode.id + ",重命名过后的回调函数 " + treeNode.name);
//1.ajax更新数据库
}
//必备的在ztree加载方法
$(document).ready(function () {
$.fn.zTree.init($("#Tree1"), setting);
$.fn.zTree.init($("#Tree2"), setting1);
});
//将在ztree1中选中的信息填到ztree2
function OnclickRight() {
var treeObj = $.fn.zTree.getZTreeObj('Tree1');
var nodes = treeObj.getCheckedNodes(true);
var checkedValues = '';
var a = [];
for (var i = ; i < nodes.length; i++) {
var obj = {};
obj.id = nodes[i].id;
obj.pId = nodes[i].pId;
obj.name = nodes[i].name;
a.push(obj);
}
if (a.length > ) {
$.fn.zTree.init($("#Tree2"), setting1, a);
}
}
//清除选中的tree2节点
function OnclickLeft() {
var treeObj = $.fn.zTree.getZTreeObj("Tree2");
var nodes = treeObj.getCheckedNodes(true);
for (var i = , l = nodes.length; i < l; i++) {
if (nodes[i].check_Child_State == ) {
treeObj.removeNode(nodes[i]);
} else if (nodes[i].check_Child_State == - && !(nodes[i].isParent)) {
treeObj.removeNode(nodes[i]);
} else {
treeObj.checkNode(nodes[i], false, false);
}
}
}
附带这个页面的其他几个问题:
<asp:DropDownList ID="ddlB" runat="server"> </asp:DropDownList>
获取此下拉框数据: YJSEnglish = $("#ContentPlaceHolder1_ddlB").find("option:selected").val();
<asp:CheckBoxList ID="cblCategory" runat="server" RepeatDirection="Horizontal"> </asp:CheckBoxList>
获取多选框数据:
$("[id*=cblCategory] input:checked").each(function () {
Values += $(this).val() + ",";
});
因为我传递到后台的数据有中文信息,所以我的Ajax如下:
var obj = {};
obj结构如下
//组织ID
obj.OrgId = OrgId;
$.ajax({
url: "Ajaxahsx/CategoryHandler.ashx?action=Save",
data: obj,
type: 'POST',
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (data) {
alert("成功");
window.location.href = 'SearchIndex.aspx';
},
error: function (data) {
alert("程序出错");
}
})
}
ztree使用心得的更多相关文章
- ztree 使用心得
最近项目需要用ztree ,初步研究感觉这个插件写的实在是太好了.现总结遇到的问题 封装一颗树 /** * 按类型分组树 * Id 按类型分组ID * treeId 树ID * treeDivId d ...
- zTree & ckeditor &ValidateCode.jar 使用个人心得总结
zTree:依靠 jQuery 实现的多功能 “树插件”. 使用时只需要将下载的压缩包接用,复制里边的css 和 js 到指定目录即可. 如图所示: 在zTree的官网可以找到各种类型树的示例: 地址 ...
- 利用ZTree链接数据库实现 [权限管理]
最近想研究权限管理,看群里有人发了ZTrees模板,我看了下,觉得笔easyUI操作起来更灵活些,于是就开始研究了. 刚开始从网上找了找了个Demo,当然这个并没有实现权限啥的,但实现了前台调用Aja ...
- web前端开发控件学习笔记之jqgrid+ztree+echarts
版权声明:本文为博主原创文章,转载请注明出处. 作为web前端初学者,今天要记录的是三个控件的使用心得,分别是表格控件jqgrid,树形控件ztree,图表控件echarts.下边分别进行描述. ...
- js插件ztree使用
最新给公司后台写了一个配置页面,在网上搜到一个js插件ztree,记录一下使用心得. 首先说一下ztree官网,好多方法我都是从官网api上学习的,官网地址http://www.treejs.cn/v ...
- 树结构ztree的 ajax交互的简单使用
今天做前端页面要用到树结构,用了第三方插件ztree,搞了好久不过终于弄出来了,, 一点小心得.(用的版本 V3 ) 首先看下载的文件结构: 一:将要用到的CSS 和 JS 拷贝到工程中,我这里在工程 ...
- jquery zTree插件 json 数据详解
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
随机推荐
- FontMetrics ----- 绘制文本,获取文本高度
Canvas 绘制文本时,使用FontMetrics对象,计算位置的坐标. public static class FontMetrics { /** * The maximum distance a ...
- 实测 windows下nginx很不稳定,换成squid好多了
在windows server 2003 下尝试了号称支持50,000个并发连接数响应的nginx,结果相当不理想. 具体表现为时不时网页就卡住不动了,需要再刷新一次网页才能显示,而服务器cpu和内存 ...
- Yii笔记---redirect重定向
Yii的redirect方法在CControler与CHttpRequest之中都有被定义,CController中的redirect调用了CHttpRequest中的redirect方法.我们平常调 ...
- 使用FTP搭建YUM
VSFTP搭建YUM源 1.安装FTP [root@FTP kel]# rpm -qa |grep vsftp vsftpd-2.2.2-6.el6_0.1.x86_64 首先需要安装的ftp软件为v ...
- 数往知来 AJAX Ajax增删改查<十九>
=================================================客户端================================================ ...
- 黑马程序员——OC的内存管理学习小结
内存管理在Objective-C中的重要性就像指针在C语言中的重要程序一样. 虽然作为一门高级语言,但OC却没有内存回收机制.这就需要开发者来对动态内存进行管理.OC中内存管理的范围是:任何继承了NS ...
- 初识-----基于Socket的UDP和TCP编程及测试代码
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- 《学习OpenCV》练习题第四章第一题b&c
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib&q ...
- cc.Sprite
Classcc.Sprite Defined in: CCSprite.js Extends cc.NodeRGBA Class Summary Constructor Attributes Cons ...
- HD2043猜密码
密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission ...