标签:php key 集合 代码 ast 异步加载 asc 了解 id3
【zTree】简单实例与异步加载实例
我们在项目中经常会需要用到树,这次按照数据库存储的特点重新了做一个小demo,使用zTree来实现这个功能。
简单实例:
首先我们需要在界面中引入代码,很简单,但是很重要,它用来存放加载的树。
ps:添加ztree的引用,下载地址:http://www.ztree.me/v3/main.php#_zTreeInfo
- <span style="font-family:KaiTi_GB2312;font-size:18px;"><ul id="tree" class="ztree"></ul> </span>
其次是js代码:
- <span style="font-family:KaiTi_GB2312;font-size:18px;"> var tree = {
-
- pFunction: {
- zTree: ‘‘,
- setting:
- {
- view: {
- dblClickExpand: false,
- showLine: true,
- selectedMulti: false,
- expandSpeed: "fast"
- },
- callback: {
- onDblClick: zTreeOnDblClick
- },
- check: {
- enable: true,
- chkStyle: "radio",
- radioType: "all"
- },
- data:
- {
- key:
- {
- name: "Name"
- },
- simpleData:
- {
- enable: true,
- idKey: "ID",
- pIdKey: "PID",
- rootPId: "null"
- }
- }
- },
-
- loadTree: function () {
- $.post("/HomeIndex/Ztree", null, function (resourceInfo) {
-
- $.fn.zTree.init($("#tree"), tree.pFunction.setting, resourceInfo);
- });
- },
- }
- };</span>
因为项目需要,我造了一些与真实数据库类似的数据,这些数据大家可自行忽略,主要代码是将数据赋予id和Pid,返回list.,树主要就是通过父节点和子节点的id来进行匹配的。
效果图:
改进版:异步加载
用这种写法在数据量小的情况下一次性把所有节点的信息查询出来是没有问题的,但这次项目中实践中发现查询出的数据量有三万多,这样一次性快速显示是不容易的,还会造成浏览器卡死的情况。所以不得不采用zTree的异步加载来实现,初次加载显示父节点,每次点击节点后再查询加载子节点。不得不说通过查阅API文档发现zTree真的很强大。如果想了解详细内容可以看文档。
需要在代码中添加异步加载的方法:
- var setting = {
- data: {
- key: {
- name:"name"
- },
- simpleData: {
- enable: true,
- idKey: "ID",
- pIdKey: "PID",
- isParent: "isParent",
- rootPId:null
- }
- },
- view: {
- dblClickExpand: false,
- showLine: true,
- selectedMulti: false,
- expandSpeed:"fast"
- },
- async: {
- enable: true,
- url: "",
- autoParam: ["ID", "PID", "index"],
- type:"post"
- },
- check:{
- enable: true,
- chkStyle: "radio",
- radioType:"all"
- },
- callback: {
- onClick:reLoadOpenURL
- }
- }
- function reLoadOpenURL(event, treeId, treeNode) {
- if (treeNode.isParent) {
-
- }
- else {
- if (confirm("确定选择此商品吗?")) {
- window.opener.document.getElementById("pCode").value = treeNode.ID;
- window.close();
- }
- else { }
- }
- };
- $(document).ready(function () {
- $.fn.zTree.init(("#tree"), setting);
- });
后台的方法根据传递的参数再查询我们需要的每个节点信息,而不是一次性的全部查询出来。
小结:
zTree的核心就是父节点和子节点以及一些特定的格式,比如setting、界面ul存放,最后将查询到的信息存放到setting格式tree中的代码。
实现一个功能首先要了解需求,然后考虑实现思路,公司开发讲究的是效率,首先选择自己最擅长的方式来实现。
最近做项目的感受就是,没有什么难与不难,会用了就不难了,凭借很多工具和途径我们总会找到解决办法。在工作中遇到什么困难不要畏惧,最后都会解决的,先去想实现再说。
每天进步一点点~
摘自:http://blog.csdn.net/ww130929/article/details/51873392
【zTree】简单实例与异步加载实例
标签:php key 集合 代码 ast 异步加载 asc 了解 id3
原文地址:http://www.cnblogs.com/jiapengsongweb/p/7594163.html