zTree控制数据展示

一、zTree展示到指定层级的数据

1.在项目开发过程中,组织结构树只想展示到第三级的数据,数据源的数据结构无数据层级信息,无奈只能从前端下手。
解决思路:zTree渲染数据后每个节点有层级level,只要遍历每个节点,把不要的层级数据剔除掉即可。
2.代码如下:

/**
** zTreeObj,zTree对象
** treeLvl,展示到treeLvl+1级的数据
**/
funtion showTreeDataByLvl(zTreeObj, treeLvl) {
    //获取zTree所有节点
    var nodes = zTreeObj.transformToArray(zTreeObj.getNodes());
    for (var i = 0; i < nodes.length; i++) {
        if (nodes[i] == treeLvl) {
            //移除指定层级的所有子节点
            zTreeObj.removeChildNodes(nodes[i]);
        }
    }
}

二、zTree展开到指定层级的数据

1.项目开发过程中,菜单树有多个层级,想要指定展开到某一级节点。
2.代码如下:

/**
** isRoot,是否是根节点
** zTreeObj,zTree对象
** childNodes,遍及节点
** treeLvl,zTree展开到treeLvl+2级的数据
**/
function showTreeMenuNum(isRoot, zTreeObj, childNodes, treeLvl) {
    if (isRoot) {
        var rootNodes = zTreeObj.getNodes();
        showTreeMenuNum(false, zTreeObj, rootNodes, treeLvl);
    } else {
        if (!isEmpty(childNodes) && !isEmpty((len = childNodes.length)) && len > 0) {
        if(treeLvl < childNodes[0].level) {
            return;
        }
        for (var i = 0; i < len; i++) {
            zTreeObj.expand(childNodes[i], true, false, false, true);
            var child = childNodes[i].children;
            showTreeMenuNum(false, zTreeObj, child , treeLvl);
        }
        }
    }
}

/**
** 判断给定的对象obj是否为空
**/
function isEmpty(obj) {
    try {
        return typeof(obj) == 'undefined' || null = obj || obj.replace(/\s/g, '') == '';
    } catch (e) {
        return false;
    }
}

3.异步加载数据使用如下:

callback : {
    /*树异步加载成功后操作*/
    onAsyncSuccess :function() {
        //zTreeObj.expandAll(true);
        showTreeMenuNum(true, zTreeObj, zTreeObj, 3);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 程序设计中常使用树型结构来表征某些数据的关联关系,如上下级、栏目结构、商品分类、菜单、回复等。 分类的层级关系可以...
    JunChow520阅读 4,135评论 4 3
  • 他把他的黑色T恤和黑色的鸭舌帽都给她穿戴上,她把头发挽起塞进鸭舌帽里,露出白皙颀长的脖子和轮廓分明的下颔骨,五官精...
    零点之前说晚安阅读 117评论 0 0
  • 当我们使用KVO监听属性的时候, 属性必须要写对,但是这个属性没有提示 所以我们想要写一个自动的提示宏来保证这个属...
    东方_未明阅读 1,830评论 1 10
  • 伴随着悠扬的钟声,今晚的能量接收开始了。新的能量音乐,让我的心更加沉静,更加放松,沉到内心深处。在悠悠的音乐中自己...
    茗一笑阅读 194评论 0 0