欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ztree使用教程

程序员文章站 2023-11-01 19:01:16
ztree 使用教程 ztree 是一个依靠 jquery 实现的多功能 “树插件”。被广泛应用在的权限管理中 1、ztree 官网下载 ztree...

ztree 使用教程

ztree 是一个依靠 jquery 实现的多功能 “树插件”。被广泛应用在的权限管理中

1、ztree 官网下载 ztree

ztree使用教程

ztree使用教程

下载好后放到项目相关目录下

ztree使用教程

2、编写相关代码

引入相关js 、 css 文件,代码如下:


<script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script> <script type="text/javascript" src="ztree/js/jquery.ztree.all.min.js" ></script>

上述代码中的 css 还可以引入如下两种、它们分别具有不同的样式





本文,根据博主个人习惯引入metrostyle.css

快速实现一个简单的树,请看如下代码,相关配置说明已写在代码中


<script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script> <script type="text/javascript" src="ztree/js/jquery.ztree.all.min.js" ></script>

    <script> var settingss = { data: { simpledata: { enable: true, //true 、 false 分别表示 使用 、 不使用 简单数据模式 idkey: "id", //节点数据中保存唯一标识的属性名称 pidkey: "parentid", //节点数据中保存其父节点唯一标识的属性名称 rootpid: -1 //用于修正根节点父节点数据,即 pidkey 指定的属性值 }, key: { name: "menuname" //ztree 节点数据保存节点名称的属性名称 默认值:"name" } }, check:{ enable:true, //true 、 false 分别表示 显示 、不显示 复选框或单选框 nocheckinherit:true //当父节点设置 nocheck = true 时,设置子节点是否自动继承 nocheck = true } }; //数据 var znodes = [ //注意,数据中的 menuname 必须与 settingss 中key 中定义的name一致,否则找不到 {menuname:"父节点1", open:true, children:[ {menuname:"子节点1"}, {menuname:"子节点2"}]}, {menuname:"父节点2", open:true, children:[ {menuname:"子节点3"}, {menuname:"子节点4"}]} ]; ztreeobj = $.fn.ztree.init($("#treedemo"), settingss, znodes); //初始化树 ztreeobj.expandall(true); //true 节点全部展开、false节点收缩 </script>

    运行效果如下图

    ztree使用教程

    3、使用ajax获取数据

    实际项目开发中,数据往往是从后台服务器获取的,而不是在前端写死的。如何实现ajax获取数据,请看如下代码

    表结构及数据如下

    ztree使用教程

    后台接口代码如下

    mapper层

    import java.util.list;
    import org.apache.ibatis.annotations.select;
    import com.che.pri.bean.menutest;
    
    public interface menutestmapper {
    	
    	@select("select id as id, parent_id as parentid, menu_name as menuname from menu_test")
    	list getmenutestlist();
    
    }

    controller层

    import java.util.hashmap;
    import java.util.map;
    import org.springframework.beans.factory.annotation.autowired;
    import org.springframework.stereotype.controller;
    import org.springframework.web.bind.annotation.requestmapping;
    import org.springframework.web.bind.annotation.responsebody;
    import com.che.pri.mapper.menutestmapper;
    @controller
    public class menutestcontroller {
    	
    	@autowired
    	private menutestmapper menutestmapper;
    
    	@responsebody
    	@requestmapping("/getmenutestlist")
    	public object getmenutestlist() {
    		map map = new hashmap();
    		map.put("menulists", menutestmapper.getmenutestlist());
    		return map;
    	}
    	
    }

    html代码如下

    
    
    <script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script> <script type="text/javascript" src="ztree/js/jquery.ztree.all.min.js" ></script>

      <script> var settingss = { data: { simpledata: { enable: true, //true 、 false 分别表示 使用 、 不使用 简单数据模式 idkey: "id", //节点数据中保存唯一标识的属性名称 pidkey: "parentid", //节点数据中保存其父节点唯一标识的属性名称 rootpid: -1 //用于修正根节点父节点数据,即 pidkey 指定的属性值 }, key: { name: "menuname" //ztree 节点数据保存节点名称的属性名称 默认值:"name" } }, check:{ enable:true, //true 、 false 分别表示 显示 、不显示 复选框或单选框 nocheckinherit:true //当父节点设置 nocheck = true 时,设置子节点是否自动继承 nocheck = true } }; $(document).ready(function(){ $.ajax({ type:"get", url:"https://localhost:8089/getmenutestlist", async:true, success:function(res){ ztreeobj = $.fn.ztree.init($("#treedemo"), settingss, res.menulists); //初始化树 ztreeobj.expandall(true); //true 节点全部展开、false节点收缩 } }); }); </script>

      运行效果如下

      ztree使用教程

      4、设置默认选中节点

      在开发中,有时我们需要默认选中一些节点。比如修改用户角色或权限时,就会有这样的需求,如何对ztree的节点进行默认选中,请看如下代码

       var node = ztreeobj.getnodebyparam("id", 7);
       ztreeobj.checknode(node, true, false); 

      通过每一条节点数据的 id 进行设置

      具体看如下代码

      
      
      <script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script> <script type="text/javascript" src="ztree/js/jquery.ztree.all.min.js" ></script>

        <script> var settingss = { data: { simpledata: { enable: true, //true 、 false 分别表示 使用 、 不使用 简单数据模式 idkey: "id", //节点数据中保存唯一标识的属性名称 pidkey: "parentid", //节点数据中保存其父节点唯一标识的属性名称 rootpid: -1 //用于修正根节点父节点数据,即 pidkey 指定的属性值 }, key: { name: "menuname" //ztree 节点数据保存节点名称的属性名称 默认值:"name" } }, check:{ enable:true, //true 、 false 分别表示 显示 、不显示 复选框或单选框 nocheckinherit:true //当父节点设置 nocheck = true 时,设置子节点是否自动继承 nocheck = true } }; $(document).ready(function(){ $.ajax({ type:"get", url:"https://localhost:8089/getmenutestlist", async:true, success:function(res){ ztreeobj = $.fn.ztree.init($("#treedemo"), settingss, res.menulists); //初始化树 ztreeobj.expandall(true); //true 节点全部展开、false节点收缩 //设置选中节点 var node = ztreeobj.getnodebyparam("id", 7); ztreeobj.checknode(node, true, false); var node = ztreeobj.getnodebyparam("id", 1); ztreeobj.checknode(node, true, false); var node = ztreeobj.getnodebyparam("id", 4); ztreeobj.checknode(node, true, false); } }); }); </script>

        运行效果

        ztree使用教程

        其他内容可参考官网api