easyui treegrid实现显示checkbox并能获取到选定值的

闲聊:

小颖最近忙疯了,经常被加班,昨天都要下班了,又提了个需求,虽然写的代码不多只有几行,可是测试环境很难跑通,一会就ie崩溃了,所以弄得小颖最近老是头晕。

也不知道最近是怎么了,一向特别爱吃的小颖,最近很没有食欲,中午不好好吃饭,就吃一个苹果,再吃几口米然后就饱了,晚上回去也不是很饿,但是到下午就开始头晕,哎!不知道自己是怎么了,昨天下午我们家大颖给我吃零食,我说我没有胃口,旁边的同事都笑了,都说不相信,我那么爱吃的人,竟然会说没胃口不想吃······,可是我真的不想吃啊啊啊啊啊啊啊。好啦不闲聊了,言归正传,下面一起来看看小颖写的demo吧。

注意:只支持狐火浏览器哦!

准备:

下载easyui

代码:

html+js

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>tree-demo</title>
    <link rel="stylesheet" type="text/css" href="themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="themes/icon.css">
    <link rel="stylesheet" type="text/css" href="css/demo.css">
    <script src="js/jquery.min.js" charset="utf-8"></script>
    <script src="js/jquery.easyui.min.js" charset="utf-8"></script>
    <script type="text/javascript">
        function show(checkid) {
            var s = ‘#check_‘ + checkid;
            /*选子节点*/
            var nodes = $("#test").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 = $("#test").treegrid("getParent", checkid);
                $((‘#check_‘ + parent.id))[0].checked = false;
                while (parent) {
                    parent = $("#test").treegrid("getParent", parent.id);
                    $((‘#check_‘ + parent.id))[0].checked = false;
                }
            } else {//如果子节点全部被选中,则父节点被选中
                var parent = $("#test").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 = $("#test").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;
                            }
                        }
                    }
                }
            }
        }

        function formatcheckbox(val, row) {
            return "<input type=‘checkbox‘ onclick=show(‘" + row.id + "‘) id=‘check_" + row.id + "‘ />";
        }
        //获取选中的结点
        function getSelected() {
            var idList = "";
            $("input:checked").each(function() {
                var id = $(this).attr("id");
                if (id.indexOf("check_") > -1) {
                    idList += id.replace("check_", ‘‘) + ‘,‘;
                }
            });
            alert(idList);
        }
    </script>
</head>

<body>
    <div style="margin:20px 0;"></div>
    <table id="test" class="easyui-treegrid" style="width:700px;height:550px" data-options="
        url: ‘treegrid_data4.json‘,
        method: ‘get‘,
        rownumbers: true,
        idField: ‘id‘,
        treeField: ‘name‘
      ">
        <thead>
            <tr>
                <th data-options="field:‘name‘" width="320">菜单/操作</th>
                <th data-options="field:‘size‘" width="60" align="center" formatter="formatcheckbox">权限分配</th>
            </tr>
        </thead>
    </table>
    <input type="button" value="获取选中的ID值" onclick="getSelected()">
</body>

</html>

treegrid_data4.json

[{
  "id": 1,
  "name": "文档栏目管理",
  "size": "",
  "date": "02/19/2010",
  "sondata": "11,12,13,14",
  "children": [{
    "id": 11,
    "name": "增加",
    "size": "",
    "date": "03/20/2010"
  }, {
    "id": 12,
    "name": "操作管理",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 13,
    "name": "删除",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 14,
    "name": "修改",
    "size": "",
    "date": "01/20/2010"
  }]
}, {
  "id": 2,
  "name": "菜单管理",
  "size": "",
  "date": "02/19/2010",
  "sondata": "21,22,23,24",
  "children": [{
    "id": 21,
    "name": "增加",
    "size": "",
    "date": "03/20/2010"
  }, {
    "id": 22,
    "name": "操作管理",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 23,
    "name": "删除",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 24,
    "name": "修改",
    "size": "",
    "date": "01/20/2010"
  }]
}, {
  "id": 3,
  "name": "角色管理",
  "size": "",
  "date": "02/19/2010",
  "sondata": "31,32,33,34",
  "children": [{
    "id": 31,
    "name": "增加",
    "size": "",
    "date": "03/20/2010"
  }, {
    "id": 32,
    "name": "操作管理",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 33,
    "name": "删除",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 34,
    "name": "修改",
    "size": "",
    "date": "01/20/2010"
  }]
}, {
  "id": 4,
  "name": "用户管理",
  "size": "",
  "date": "02/19/2010",
  "sondata": "41,42,43,44",
  "children": [{
    "id": 41,
    "name": "增加",
    "size": "",
    "date": "03/20/2010"
  }, {
    "id": 42,
    "name": "操作管理",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 43,
    "name": "删除",
    "size": "",
    "date": "01/20/2010"
  }, {
    "id": 44,
    "name": "修改",
    "size": "",
    "date": "01/20/2010"
  }]
}]
时间: 2024-12-21 10:58:29

easyui treegrid实现显示checkbox并能获取到选定值的的相关文章

jquery 获取用户选定值的方法

//启动删除程序 $("#deleteDetail").click(function () { //获取已选项的id集 if(confirm("确定要删除所选记录吗?")==true) { //获取所选记录id var idset=""; //用于记录复选框选定值的字符串变量 $("[name='did']:checked").each(function(){ // 根据name属性以及checked状态来获取被用户选定的项,

javascript 获取DropDownList选定值的方法

<script type="text/javascript" language="javascript"> function submitData() {         var d = document.getElementById("<%=DropDownList1.ClientID %>");//根据DropDownList的客户端ID获取该控件         var typeValue = d.options[d

EasyUi TreeGrid封装

http://www.cnblogs.com/Leo_wl/p/4319470.html 礼物一:树型实体的抽象与封装 所谓树型实体,就是具有树型结构关系的实体,比如省.市.区.对于初学者,可能会创建三张表进行存储,有经验的开发者通过引入ParentId将设计简化为一张表,但是基于ParentId的设计也不够完美,主要问题是查找某个节点的所有上级或所有下级时,都需要进行递归,这是一个低效而复杂的操作. 更有经验的开发者会引入物化路径Path,物化路径是对节点关系的记录,一般格式为:当前节点Pat

基于EasyUI Treegrid的权限管理资源列表

1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到的主要是Datagrid组件,这次为了区分资源的父子关系,打造更好的用户体验,遂探索一下Treegrid组件. 2.jQueryEasyUI简介 jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的U

Jquery easyui treegrid实现树形表格的行拖拽

前几天修改了系统的一个功能——实现树形列列表的行拖拽,以达到排序的目的.现在基本上功能实现,现做一个简单的总结. 1.拿到这个直接网上搜,有好多,但是看了后都觉得不是太复杂就是些不是特别想看的例子,自己太懒(对自己不是很熟悉的东西是不愿意第一去看的).结果选择良久,还是jquery easyui treegrid这个例子自己看起来比较熟悉.于是就专心研究了,从官方网站http://www.jeasyui.net/下载了demo,开始研读.先把jsp页面一些代码贴出 <link rel="s

EasyUI + Struts2 + Ajax 显示 easyui datagrid 分页效果

1.Html代码 1 <script type="text/javascript" src="/js/easyui/jquery.min.js"></script> 2 <script type="text/javascript" src="/js/easyui/jquery.easyui.min.js"></script> 3 <script type="tex

easyui treegrid 使用技巧

一:easyui treegrid重新加载数据 1:self.grid.treegrid('loadData', []);//清空数据 self.grid.queryParams({});//重新加载 //self.grid.treegrid('reload');//treegrid重新加载一次 2:window.location.reload(); 二:easyui treegrid获取被选中的数据 var rows = null; rows = self.grid.treegrid('get

easyui——treegrid级联选中之微改进,解决解除选中的问题。

代码大部分参考网络资源,但针对网络资源中取消选中的各种问题做了改进. if ($.fn.treegrid) { $.extend($.fn.treegrid.methods, { /** * 级联选择 * @param {Object} target * @param {Object} param * param包括两个参数: * id:勾选的节点ID * deepCascade:是否深度级联 * @return {TypeName} */ cascadeCheck: function (tar

JS 控制checkbox 获取 全选 全不选 一行不选择全选则不被选择 全部选择全选被选择

</pre><pre name="code" class="javascript"><span style="font-size:18px;">//点击全选按钮的事件操作 function selectAll(){ var allcheckBoxs=document.getElementsByName("iTo"); var select=document.getElementsByName