ztree取消半勾选

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ztree取消半勾选相关的知识,希望对你有一定的参考价值。

半勾选可以取消吗?因为提交数据的时候半勾选的数据也会被提交,或者怎么能让半勾选的节点数据不提交??

参考技术A 初始化打开页面时,从后台查到的关联关系,子节点选中,父节点只变灰,没有对勾符号。

然后在勾选一个子节点,父节点有半勾选的状态,既变灰,又有对勾符号。

如何能够在打开这个页面的时候,关联父节点出现对勾的符号。

Ztree 限制根节点大类下勾选的子节点个数不超过5个

var setting =
            view :
                showIcon:false
            ,
            check:
                enable: true,
                chkboxType: "Y" : "", "N" : ""
            ,
            data:
                simpleData:
                    enable: true
               
            ,
            callback:
                onCheck: zTreeOnCheck
           
        ;
//获取当前节点的根节点(treeNode为当前节点)
    function getCurrentRoot(treeNode)
        if(treeNode.getParentNode()!=null)
            var parentNode = treeNode.getParentNode();
            return getCurrentRoot(parentNode);
        else
            return treeNode;
       
   
    /**获取指定节点下的所有选中的子节点数组,ids是传入的新数组**/
    function getChildren(ids,treeNode)
        if (treeNode.isParent)//是父节点
            for(var obj in treeNode.children)
                getChildren(ids,treeNode.children[obj]);
           
        else
            if(treeNode.checked)//子节点且被勾选状态
                ids.push(treeNode.name);
           
       
        return ids;
   
    /**节点前面复选框选中事件**/
    function zTreeOnCheck(event, treeId, treeNode)
        if(treeNode.checked)//勾选事件
            //获取当前勾选节点的最顶层根节点
            var currentRootNode=getCurrentRoot(treeNode);
            var ids=[];
            getChildren(ids,currentRootNode);
            console.log(currentRootNode.name+"下勾选的节点集合为:"+ids);
            if(ids.length>5)
                treeNode.checked=false;
                alert(currentRootNode.name+"下勾选的关注指标不能超过5个!!");
           


       
        // console.log(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked+"\\n");
        // var treeObj = $.fn.zTree.getZTreeObj("zhibiao_zTree");
        // var currentRootNode=getCurrentRoot(treeNode);
        // console.log(currentRootNode.name+"\\n");
        // var nodes = treeObj.getNodesByFilter(function (node) return node.level == 0 );
        // console.log(nodes);
    ;
/**提交前检查每个大类下勾选的指标个数是否超过5个**/
    function inspecttreeNodesNum(number)
        number=number||5;
        var treeObj = $.fn.zTree.getZTreeObj("zhibiao_zTree");
        var nodes = treeObj.getNodesByFilter(function (node) return node.level == 0 );
        console.log(nodes);
        for(var i=0;i<nodes.length;i++)
            var currentRootNode=nodes[i];
            var ids=[];
            getChildren(ids,currentRootNode);
            console.log(currentRootNode.name+"下勾选的节点集合为:"+ids);
            if(ids.length>number)
                alert(currentRootNode.name+"下勾选的关注指标超过5个!!请调整");
                return false;
           
       
        return true;
   

以上是关于ztree取消半勾选的主要内容,如果未能解决你的问题,请参考以下文章

ztree点击节点实现选中/取消复选框

c# TreeView实现三种选中状态

el-tree父子节点的选中取消

ztree 获取CheckBox选中节点时,不获取选中上级父节点

QTreeWidget 节点选中的图标怎么设置

如何在TreeView中选中他的节点时,更改节点的背景颜色?