zoukankan      html  css  js  c++  java
  • easyui-treegrid节点选择

    easyui-treegrid本身不能实现选中父节点子节点全选,必须通过另外的方法来实现,这里说下如何通过修改节点样式添加checkbox来实现级联选择效果

    首先需要格式化节点的样式

    formatter: function (value, row, index) {
                                 return "<input type='checkbox' onclick=show('" + row.ID + "') id='check_" + row.ID + "'/>" + row.EntityName;
                             }

    show方法如下:

    function show(checkid) {
                var s = '#check_' + checkid;
                //alert( $(s).attr("id"));
                // alert($(s)[0].checked);
                /*选子节点*/
                var nodes = $("#EntityTree").treegrid("getChildren", checkid);
                for (i = 0; i < nodes.length; i++) {
                    $(('#check_' + nodes[i].ID))[0].checked = $(s)[0].checked;
    
                }
                //选上级节点
                if (!$(s)[0].checked) {
                    var parent = $("#EntityTree").treegrid("getParent", checkid);
                    $(('#check_' + parent.ID))[0].checked = false;
                    while (parent) {
                        parent = $("#EntityTree").treegrid("getParent", parent.ID);
                        $(('#check_' + parent.ID))[0].checked = false;
                    }
                } else {
                    var parent = $("#EntityTree").treegrid("getParent", checkid);
                    var flag = true;
                    var sons = parent.sondata.split(',');
                    for (j = 0; j < sons.length; j++) {
                        if (!$(('#check_' + sons[j]))[0].checked) {
                            flag = false;
                            break;
                        }
                    }
                    if (flag)
                        $(('#check_' + parent.ID))[0].checked = true;
                    while (flag) {
                        parent = $("#EntityTree").treegrid("getParent", parent.ID);
                        if (parent) {
                            sons = parent.sondata.split(',');
                            for (j = 0; j < sons.length; j++) {
                                if (!$(('#check_' + sons[j]))[0].checked) {
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        if (flag)
                            $(('#check_' + parent.ID))[0].checked = true;
                    }
                }
            }
  • 相关阅读:
    To do list
    2020 上半学期比赛记录
    板子
    Project Euler 1~10 野蛮题解
    卡常火车头
    防止unordered_map 被卡方法
    2019 香港区域赛 BDEG 题解
    2019徐州区域赛 ACEFM 题解 & pollard-rho & miller-rabin & 求出每个子树的重心 板子
    BST-splay板子
    ZJOI2017(2) 游记
  • 原文地址:https://www.cnblogs.com/xiangzhong/p/5038657.html
Copyright © 2011-2022 走看看