前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zTree实现权限列表简单实例

zTree实现权限列表简单实例

作者头像
河岸飞流
发布2019-09-11 16:14:59
9590
发布2019-09-11 16:14:59
举报
文章被收录于专栏:开发杂记

zTree的简单实例

zTree 是一个依靠jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

zTree官网

zTreeAPI下载链接

  页面主要引入一下几个文件:

代码语言:javascript
复制
<link type="text/css" rel="stylesheet" href="zTree/zTreeStyle.css" />
<script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript" src="js/jquery.ztree.excheck-3.5.js"></script>

html页面:

代码语言:javascript
复制
<div class="edit_content">
            <div class="qxlb">
                <div class="add_title"> 
                    <span>权限列表</span>
                </div>
                <div class="qxlb_content">
                <ul id="tree" class="ztree"></ul>
                </div>
            </div>
  </div>

核心js:

代码语言:javascript
复制
<SCRIPT type="text/javascript">
var zTree;
//创建树型结构
function createTree() {
    var setting = {
        check:{
            enable:true
        },
        view: {
            dblClickExpand: true,
            expandSpeed: ""
        },
        //异步加载
        async: {
            enable: true,//设置是否异步加载
            url:"<%=path%>/role/getResourcesList.do", //设置异步获取节点的 URL 地址
            otherParam: [ "roleId", '${updateRole.id}']
            
        },
        
        //这个data里面的pIdKey,idKey,name等等之类的都是对应后台查出的字段名字,在sql中写好或者在拼接json的时候先拼接好,前太接收的时候只要对应一直就可以了
        data: {
            simpleData: {
                enable: true,
                pIdKey: "PARENTID",
                idKey: "ID"
            },
                key: {
                    checked: "CHECKED",
                    name:"NAME"
                }
        },
        callback: {
          onAsyncSuccess: zTreeOnAsyncSuccess  
    }  
    };
    //初始化   
    zTree = $.fn.zTree.init($("#tree"), setting);   
    zTree.expandAll(true);
}
/* 异步加载无法展开tree 默认展开一级菜单 */
var firstAsyncSuccessFlag = 0;
function zTreeOnAsyncSuccess(event, treeId, msg) {  
if (firstAsyncSuccessFlag == 0) {  
          try {  
                 //调用默认展开第一个结点  
                 var selectedNode = zTree.getSelectedNodes();  
                 var nodes = zTree.getNodes();  
                 zTree.expandNode(nodes[0], true);  
                 var childNodes = zTree.transformToArray(nodes[0]);  
                 zTree.expandNode(childNodes[1], true);  
                 zTree.selectNode(childNodes[1]);  
                 var childNodes1 = zTree.transformToArray(childNodes[1]);  
                 zTree.checkNode(childNodes1[1], true, true);  
                 firstAsyncSuccessFlag = 1;  
           } catch (err) {  
           
           }  
     }  
}

$(function(){
    //页面加载完成创建树
    createTree();   
});

function submitRole(){
    //获取选中的节点,传到后台
    var nodes = zTree.getCheckedNodes();
    var ids = [];
    for(var i=0,l=nodes.length;i<l;i++){
       ids[ids.length] = nodes[i].ID;
    }
    //var _resourcesIds=ids.join(",");
    document.getElementById("hidden_resourceList").value=ids.join(",");
            
    //$("#resourcesRoleListForm").submit();
}
</SCRIPT>

  其中数据通过后台递归查询实现,以json的形式传到前台,进行接收。更多的内容可以参考API,里面的例子很详细。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • zTree的简单实例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档