侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

easyui的treegrid的级联勾选子节点,或者级联勾选父节点

2024-05-06 星期一 / 0 评论 / 0 点赞 / 58 阅读 / 4283 字

级联勾选子节点: 步骤: 1.在treegrid的onCheck事件中写上函数(级联勾选子节点): onCheck : function(row){ t = $(this);

级联勾选子节点:

步骤:

1.在treegrid的onCheck事件中写上函数(级联勾选子节点):

onCheck : function(row){        t = $(this);        opts = t.treegrid("options");        if (opts.checkOnSelect && opts.singleSelect) { return; }        var idField = opts.idField, id = row[idField], children, checked, parent = row;        //如果当前节点被勾选,那么勾选该节点的子节点        $.each(t.treegrid("getChildren", id), function (i, n) {             if (!t.treegrid("isChecked", n[idField])) { t.treegrid("check", n[idField]); }        });},

2.在onUncheck事件中写上函数(级联取消勾选子节点):

t = $(this);    opts = t.treegrid("options");    if (opts.checkOnSelect && opts.singleSelect) { return; }    var idField = opts.idField, id = row[idField], children, checked, parent = t.treegrid("getParent", id);    $.each(t.treegrid("getChildren", id), function (i, n) {    t.treegrid("uncheck", n[idField]);});

第二种:选择子节点需要将父节点选中

onCheck事件:

​onCheck : function(row){        	t = $(this);        	opts = t.treegrid("options");            if (opts.checkOnSelect && opts.singleSelect) { return; }            var idField = opts.idField, id = row[idField], children, checked, parent = t.treegrid("getParent", id);            while (parent) {                    children = t.treegrid("getChildren", parent[idField]);                    checked = t.treegrid("getChecked");                    if (!$.array.some(children, function (val) { return !$.array.contains(checked, val); })) {                        if (!t.treegrid("isChecked", parent[idField])) { t.treegrid("check", parent[idField]); }                    }                    parent = t.treegrid("getParent", parent[idField]);             }             $.each(t.treegrid("getChildren", id), function (i, n) {                    //如果子节点没有勾选,那么勾选子节点                    if (!t.treegrid("isChecked", n[idField])) { t.treegrid("check", n[idField]); }             });}       ​

onUncheck事件:

onUncheck:function(row){        	t = $(this);        	opts = t.treegrid("options");            if (opts.checkOnSelect && opts.singleSelect) { return; }            var idField = opts.idField, id = row[idField], children, checked, parent = t.treegrid("getParent", id);            while (parent) {                    children = t.treegrid("getChildren", parent[idField]);                    checked = t.treegrid("getChecked");                    if (!$.array.some(children, function (val) { return $.array.contains(checked, val); })) {                        if (t.treegrid("isChecked", parent[idField])) { t.treegrid("uncheck", parent[idField]); }                    }                    parent = t.treegrid("getParent", parent[idField]);             }             $.each(t.treegrid("getChildren", id), function (i, n) {                    t.treegrid("uncheck", n[idField]);             });},​

总结下:

treegrid上面的两个函数:

onCheck : function(row){   t = $(this);   checkChildren(t,row);},onUncheck:function(row){   t = $(this);   unCheckChildren(t,row);},

自定义函数:

/** * treegrid的级联勾选和级联取消勾选子节点 */function checkChildren(t,row){	opts = t.treegrid("options");    if (opts.checkOnSelect && opts.singleSelect) { return; }    var idField = opts.idField, id = row[idField], children, checked, parent = row;    //如果当前节点被勾选,那么勾选该节点的子节点    $.each(t.treegrid("getChildren", id), function (i, n) {        if (!t.treegrid("isChecked", n[idField])) { t.treegrid("check", n[idField]); }    });}function unCheckChildren(t,row){	opts = t.treegrid("options");    if (opts.checkOnSelect && opts.singleSelect) { return; }    var idField = opts.idField, id = row[idField], children, checked, parent = t.treegrid("getParent", id);    $.each(t.treegrid("getChildren", id), function (i, n) {        t.treegrid("uncheck", n[idField]);    });}

 

广告 广告

评论区