zTree实现权限列表简单实例

zTree的简单实例

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

  zTree官网

  zTreeAPI下载链接

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

<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页面:

<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:

<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,里面的例子很详细。

转载于:https://www.cnblogs.com/xieshuang/p/5359034.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值