在项目中需要用到树,使用了Ztree。(官网地址:http://www.treejs.cn/v3/main.php#_zTreeInfo,介绍很详细,有API,有demo)

1.初始化树:   $.fn.zTree.init($("#treeDemo"), setting, zNodes),#treeDemo-放置树的容器ID,setting参数设置,ZNodes初始化的节点;

2.setting 参数设置如下

var setting = {
check: {
enable: true//是否显示勾选框
},
data: {
simpleData: {
enable: true//确定 zTree 初始化时的节点数据,是否采用简单数据模式 (Array),开启之后,后天直接返回的list可以直接绑定树
}
},
callback: {//各种回调函数
onDblClick: dblClickNode,
}
};

  3.后台自定义类,用来接受树数据,返回给前台绑定树使用,个人觉得这个树结构是很方便的,可以在后台将树处理好,只要是正确的父级ID,绑好数据返回给前台就能用了,基本不用再做其他处理,非常方便

public class JsTreeModel
{
public string id { get; set; }//树id public string pId { get; set; }//父级id public string name { get; set; }//名字 public bool open { get; set; }//是否默认展开 public bool isParent { get; set; }//是否是父级节点,异步加载时使用 public bool @checked { get; set; }//是否选中
}

4.后台处理好数据用上面定义的 JsTreeModel 的List类型接收,返回到前台,直接给树绑定,在前台就能看到完整的树结构了

5.考虑到树数据量大的问题,需要启用异步加载,只需要在设置参数中添加异步的参数

var setting = {
async:{
enable: true,
url: "url",//子节点异步获取的后台方法
autoParam: ["id", "checked"],//参数,基本树节点自带属性都可以从这里传到后台
otherParam: { "userlist": userlist, "username": function () { return $("#teachername").val(); } },//其他参数,自定义参数
dataFilter: filter//过滤器,对后台传回来的数据进行处理后再交给树
} ,
check: {
enable: true
},
data: {
simpleData: {
enable: true
}
},
callback: {
onDblClick: dblClickNode,
}
};

 在异步加载的时候出现过几个问题,一是异步方法不进去,发现是父节点没有设置Isparent属性,在初始化的时候,给父节点的isparent属性设置为true,二是子节点不展示,发现时过滤器方法不对,数据没有返回,三是勾选父节点,再进行异步加载,子节点没有被勾选,这个通过异步方法将父节点的选中属性(checked)传到后台,赋值给查询到的子节点就行了,四是自定义参数的问题,在otherParam里面传的参数只是初始值,如果是用户输入之类的参数值,会一直都是空,所有需要使用函数的方式传值,就上面所写到的

"username": function () { return $("#teachername").val(); }

  

Ztree使用笔记的更多相关文章

  1. zTree 学习笔记之(一)

    zTree 学习笔记之(一) 简介 zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 到底有哪些具体的优点,可以参见官网 ...

  2. Ztree 随笔记

    Ztree方法是一个单体对象方法,假如一个页面有多个的话,每申明一个新对象前面的Ztree对象就要被覆盖. 解决:在生成tree控件的时候就要设置其控件ID,然后通过$.fn.zTree.getZTr ...

  3. ztree学习笔记(一)

    在项目当中,经常会用到ztree树形插件,之前做的几个项目当中都用到了这个插件,感觉功能还是很强大的,而且在网上还找到了中文的API,因为项目中的树形结构不是自己做的,所以现在从头学习一下,并且记录一 ...

  4. z-tree学习笔记

    做项目时,需要用到带复选框的tree.经比较后优选了ztree,功能强大,文档清晰. http://www.treejs.cn/v3/api.php 直接上代码吧. 1.下载ztree后.将里面需要用 ...

  5. ztree案例笔记:用户不规范操作导致添加不了节点的问题

    我使用ztree开发了简码"万能助手",经过一段时间的观察,发现有个别用户不看教程就开始操作,总能给我折腾出一些让人哭笑不得的问题. 比如,把某个根栏目里的节点全删除,然后发现添加 ...

  6. zTree学习笔记

    一.zTree的下载 官网:http://www.treejs.cn/v3/main.php#_zTreeInfo 解压后的目录结构为: 二.zTree入门案例 2.1 在页面中引入相关文件 要使用z ...

  7. [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?

    [译]聊聊C#中的泛型的使用(新手勿入)   写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...

  8. 【笔记】ztree的使用

    引用的js和css: <!-- zTreeJS --><script type="text/javascript" src="jquery/jquery ...

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

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

随机推荐

  1. Black World

  2. SQL SERVER数据库的表中修改字段属性被阻止“Prevent saving changes that require table re-creation”

    1.启动SQL SERVER,选择工具—>选项,去掉“ 阻止保存要求重新创建表的更改”前面的勾. 2.选择设计器 3.去掉“阻止保存要求重新创建表的更改”前面的对号,点击OK. 重新启动SQL ...

  3. easyui dialog 扩展load

    $.extend($.fn.panel.methods, { showMask: function(jq, msg){ return jq.each(function(){ var pal = $(t ...

  4. Swift高级语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如 ...

  5. Unity-Animator深入系列---API详解

    回到 Animator深入系列总目录 测试Unity版本为5.2.1 人形动画的接口都有标注 本列表不包含所有标注为过时的方法 1.Vector3 angularVelocity { get; } [ ...

  6. CentOS的网络配置(终端环境)

    在虚拟机中安装了Server版的CentOS,用于做Hadoop相关的实验.Server版的CentOS默认是没有桌面环境的,eth0的网络默认也没有开启,需要我们手动启动网络. 关键配置说明 网络和 ...

  7. 关于token的杂记

    http://www.cnblogs.com/xiekeli/p/5607107.html https://www.oschina.net/question/1264088_220768 token作 ...

  8. centos 服务开机启动设置

    建立服务文件以nginx 为例 vim /lib/systemd/system/nginx.service 在nginx.service 中插入一下内容 [Unit] Description=ngin ...

  9. EasyUI中动态生成标签页

    这是最近学到的内容,当时是有思路但是不知道怎么获取当前的点击对象,就没有实现功能,通过更深入的学习,我知道了不仅仅是Java,Oracle中有一个this,同样的EasyUI中也存在一个this,来获 ...

  10. 定时器图片轮播淡入淡出基本功能已实现,正在修改BUG中。。(附图效果和源代码)

    用JQ写的源码如下: 实现功能: 1,图片自动按顺序轮播,轮播选中的图片透明度为1,其他为0.1: 2,鼠标停在的图片上透明度为1,其他为0.1: 3,鼠标离开,继续轮播,起始位置为鼠标停在的图片的下 ...