欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » EasyUI开发经验汇总 » 正文

获取EasyUI的Tree或TreeGrid控件所有已勾选的数据

创建时间:2017年09月16日 08:57  阅读次数:(4829)
分享到:
今天因一个功能需要取EasyUI的TreeGrid中所有已勾选的数据,查遍了EasyUI的API,都没有找到该方法,没办法,只有自己扩展了。

用IE的开发人员工具,查到找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);

Tree控件应该也是差不多了,可以自己试着改下。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 59+50=? 的结果(结果是:109)
结  果: