一个很好用的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使用心得的更多相关文章

  1. ztree 使用心得

    最近项目需要用ztree ,初步研究感觉这个插件写的实在是太好了.现总结遇到的问题 封装一颗树 /** * 按类型分组树 * Id 按类型分组ID * treeId 树ID * treeDivId d ...

  2. zTree & ckeditor &ValidateCode.jar 使用个人心得总结

    zTree:依靠 jQuery 实现的多功能 “树插件”. 使用时只需要将下载的压缩包接用,复制里边的css 和 js 到指定目录即可. 如图所示: 在zTree的官网可以找到各种类型树的示例: 地址 ...

  3. 利用ZTree链接数据库实现 [权限管理]

    最近想研究权限管理,看群里有人发了ZTrees模板,我看了下,觉得笔easyUI操作起来更灵活些,于是就开始研究了. 刚开始从网上找了找了个Demo,当然这个并没有实现权限啥的,但实现了前台调用Aja ...

  4. web前端开发控件学习笔记之jqgrid+ztree+echarts

    版权声明:本文为博主原创文章,转载请注明出处.   作为web前端初学者,今天要记录的是三个控件的使用心得,分别是表格控件jqgrid,树形控件ztree,图表控件echarts.下边分别进行描述. ...

  5. js插件ztree使用

    最新给公司后台写了一个配置页面,在网上搜到一个js插件ztree,记录一下使用心得. 首先说一下ztree官网,好多方法我都是从官网api上学习的,官网地址http://www.treejs.cn/v ...

  6. 树结构ztree的 ajax交互的简单使用

    今天做前端页面要用到树结构,用了第三方插件ztree,搞了好久不过终于弄出来了,, 一点小心得.(用的版本 V3 ) 首先看下载的文件结构: 一:将要用到的CSS 和 JS 拷贝到工程中,我这里在工程 ...

  7. jquery zTree插件 json 数据详解

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  9. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

随机推荐

  1. Drupal如何实现类的自动加载?

    Drupal通过spl_autoload_register()注册类加载器实现自动加载: function _drupal_bootstrap_database() { // ... .... spl ...

  2. Oracle V$SESSION详解

    V$SESSION是APPS用户下面对于SYS.V_$SESSION 视图的同义词. 在本视图中,每一个连接到数据库实例中的session都拥有一条记录.包括用户session及后台进程如DBWR,L ...

  3. BITMAP CONVERSION FROM ROWIDS

    在有些执行计划中,可以会看到 BITMAP CONVERSION FROM ROWIDS这样的东东,也许你会感觉奇怪,我没有使用位图索引怎么出现了bitmap.我通过一个sql和大家分析下原因:sql ...

  4. [转]Linux的chattr与lsattr命令详解

    转自:http://www.cnblogs.com/yangxia-test/archive/2013/05/24/3096410.html 这两个命令是用来查看和改变文件.目录属性的,与chmod这 ...

  5. jquery图片裁切+PHP文件上传

    下载地址:download.csdn.net/source/2745353

  6. 【LeetCode】14 - Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. Solution: cla ...

  7. 理解KMP

    KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法.简单匹配算法的时间复杂度为O(m*n),KMP匹配算法,可以证明它的时间复杂度为O(m+n).. 一.简单匹配算法 先来看一个 ...

  8. asp.net mvc下ckeditor使用

    资源下载:ckeditor 第一步,引入必须文件“~/ckeditor/ckeditor.js” 第二步,替换文本域 <%: Html.TextArea("Content", ...

  9. proguard 混淆android代码

    官网 http://proguard.sourceforge.net/#manual/examples.html android 2.3后,新建的project默认就有一个project.proper ...

  10. Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...