获取EasyUI的treegrid的checkbox所有已勾选的数据

来源:互联网 发布:北京汽车美容软件 编辑:程序博客网 时间:2024/05/18 09:48

EasyUI为TreeGrid的已勾选节点未勾选节点只勾选部分子节点的父节点分别添加了三个不同的样式,如下:
样式一:tree-checkbox2 有子节点被选中
样式二:tree-checkbox1 节点被选中
样式三:tree-checkbox0 节点未选中

那么,我们就可以依据这三个样式分别取到所有已勾选的主键值了,为方便使用,我们写成TreeGrid的扩展方法,代码如下:

$.extend($.fn.treegrid.methods, {    //iscontains是否包含父节点(即子节点被选中时是否也取父节点)    getAllChecked: function (jq, iscontains) {        var keyValues = new Array();        /*          tree-checkbox2 有子节点被选中的css          tree-checkbox1 节点被选中的css          tree-checkbox0 节点未选中的css        */        var checkNodes = jq.treegrid("getPanel").find(".tree-checkbox1");        for (var i = 0; i < checkNodes.length; i++) {            var keyValue1 = $($(checkNodes[i]).closest('tr')[0]).attr("node-id");            keyValues.push(keyValue1);        }        if (iscontains) {            var childCheckNodes = jq.treegrid("getPanel").find(".tree-checkbox2");            for (var i = 0; i < childCheckNodes.length; i++) {                var keyValue2 = $($(childCheckNodes[i]).closest('tr')[0]).attr("node-id");                keyValues.push(keyValue2);            }        }        return keyValues;    }});
调用方法:

var kv = $("#XXX").treegrid("getAllChecked", true);alert(kv);

另外,1.4.5版本以后的,提供如下几个方法:

var kv = $("#XXX").treegrid("getCheckedNodes");  获取勾选的节点var kv = $("#XXX").treegrid("checkNode",id);  根据ID勾选节点var kv = $("#XXX").treegrid("uncheckNode",id);  根据ID取消勾选节点