博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扩展easyui treegrid 级联选择
阅读量:4325 次
发布时间:2019-06-06

本文共 2235 字,大约阅读时间需要 7 分钟。

/**

* 扩展树表格级联勾选方法:
* @param {Object} container
* @param {Object} options
* @return {TypeName}
*/
$.extend($.fn.treegrid.methods, {
/**
* 级联选择
* @param {Object} target
* @param {Object} param
* param包括两个参数:
* id:勾选的节点ID
* deepCascade:是否深度级联
* @return {TypeName}
*/
cascadeCheck: function (target, param) {
var opts = $.data(target[0], "treegrid").options;
if (opts.singleSelect)
return;
var idField = opts.idField;//这里的idField其实就是API里方法的id参数
var status = false;//用来标记当前节点的状态,true:勾选,false:未勾选
var selectNodes = $(target).treegrid('getSelections');//获取当前选中项
for (var i = 0; i < selectNodes.length; i++) {
if (selectNodes[i][idField] == param.id)
status = true;
}
//级联选择父节点
selectParent(target[0], param.id, idField, status);
selectChildren(target[0], param.id, idField, param.deepCascade, status);
/**
* 级联选择父节点
* @param {Object} target
* @param {Object} id 节点ID
* @param {Object} status 节点状态,true:勾选,false:未勾选
* @return {TypeName}
*/
function selectParent(target, id, idField, status) {
var parent = $(target).treegrid('getParent', id);
if (parent) {
var parentId = parent[idField];
if (status)
$(target).treegrid('select', parentId);
else
$(target).treegrid('unselect', parentId);
selectParent(target, parentId, idField, status);
}
}
/**
* 级联选择子节点
* @param {Object} target
* @param {Object} id 节点ID
* @param {Object} deepCascade 是否深度级联
* @param {Object} status 节点状态,true:勾选,false:未勾选
* @return {TypeName}
*/
function selectChildren(target, id, idField, deepCascade, status) {
//深度级联时先展开节点
//if (!status && deepCascade)
// $(target).treegrid('expand', id);
//根据ID获取下层孩子节点
var children = $(target).treegrid('getChildren', id);
for (var i = 0; i < children.length; i++) {
var childId = children[i][idField];
if (status)
$(target).treegrid('select', childId);
else
$(target).treegrid('unselect', childId);
selectChildren(target, childId, idField, deepCascade, status);//递归选择子节点
}
}
}
});

 

 

 

调用方法:

$('#test').treegrid({  

                idField:'code',//需设置  

                treeField:'code',  

               singleSelect:false,//需设置  

                columns:[[  

                  {field:'ck',checkbox:true},//需设置  

                  {title:'Code',field:'code',width:200},                    

                ]],  

                onClickRow:function(row){  

//级联选择  

                   $(this).treegrid('cascadeCheck',{  

                       id:row.code, //节点ID  

                        deepCascade:true //深度级联  

                   });  

                }  

            });  

 

转载于:https://www.cnblogs.com/jimmyLei/p/9268702.html

你可能感兴趣的文章
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息...
查看>>
HDU 5353 Average
查看>>
进程和计划管理
查看>>
MQ_ActiveMQ环境部署+C#推送和接收消息
查看>>
Ubuntu16.04上使用Anaconda3的Python3.6的pip安装UWSGI报错解决办法
查看>>
学习笔记11.6
查看>>
高效中的细节注意
查看>>
MySQL 之 库操作
查看>>
Python 最抢手、Java 最流行,前线程序员揭秘 2019 软件开发现状
查看>>
R语言(一)
查看>>
商品搜索引擎---分词(插件介绍与入门实例)
查看>>
win7下硬盘安装Windows
查看>>
SQL Server 数据库性能优化(转载)
查看>>
java ee课程目标
查看>>
Shell 脚本进程并发&进程数控制
查看>>
Java基础String类
查看>>
yum -y list java* 查看当前java的版本
查看>>
Linux创建用户
查看>>
github中markdown语言的使用规则
查看>>
clean-css 安装 使用
查看>>