树结构的选择

/**
 * 获得选中节点的顶层节点
 * @param {Object} tree
 * @param {Object} node
 */
function checkedPNode(tree, node){
    if (node != null) {
        tree.expandNode(node);//展开当前树节点,让树自动加载数据
        var pNode = node.getParent();
        while (pNode!=null){
pNode.setChecked(true);
pNode.refresh();
pNode = pNode.getParent();
}
    }
}


/**
 * 取消选中的所有子节点
 * @param {Object} tree
 * @param {Object} node
 */
function uncheckchild(tree, node){
    if (!node.isChecked()) {
        tree.expandNode(node);
        if (node.isHasChild() == true) {
            var collection = node.getNodes();
            var it = collection.iterator();
            var cnode;
            while (it.hasNext()) {
                cnode = it.next();
                cnode.setChecked(false);
                cnode.refresh();
                uncheckchild(tree, cnode);
            }
        }
    }
}


/**
 * 选中所有的子节点
 * @param {Object} tree
 * @param {Object} node
 */
function checkchild(tree, node){
    if (node.isChecked()) {
        tree.expandNode(node);
        if (node.isHasChild() == true) {
            var collection = node.getNodes();
            var it = collection.iterator();
            var cnode;
            while (it.hasNext()) {
                cnode = it.next();
                cnode.setChecked(true);
                cnode.refresh();
                checkchild(tree, cnode);
            }
        }
    }
}


/**
 * 加载的时候默认选择全部树节点
 * @param {Object} node
 * @param {Object} treeClass
 */
function checkAllNode(node, treeClass){
    if (node != null) {
        treeClass.expandNode(node);//展开当前树节点,让树自动加载数据
        var nodes = node.getNodes(); //取得当前节点下一层节点
        var iter = nodes.iterator();
        while (iter.hasNext()) {
            var cnode = iter.next();
            cnode.setChecked(true);
            cnode.refresh();
            if (cnode.isHasChild()) { //判断该节点是否存在子节点
                checkAllNode(cnode, treeClass);
            }
        }
    }
}


/**
 * 选择节点触发事件
 * @param {Object} node
 * @param {Object} tree
 */
function checkSelectNode(node, tree){
    if (node.isChecked()) {
checkedPNode(tree,node);
    }
    else {
        uncheckchild(tree, node);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值