easyui的treegrid的级联勾选子节点,或者级联勾选父节点
级联勾选子节点:
第一种:级联勾选子节点(父节点级联子节点)
步骤:
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]);
});
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
【Python金融量化】VaR系列(一):HS,WHS,RM方法估计VaR
最近参加了一个线上学习计划,一群人一起学《Elements of Financial Risk Management》这本书,主要偏向于金融时间序列和多因子模型的知识,结合python编程。现在已经看了三分之一左右,感觉写的还不错,有些收获,意外惊喜是教材的答案全是用excel公式做的,头一次发现excel还可以做极大似然估计这种东西,很神奇。 VaR的估计是书中一个重要部分,从最浅显的HS模型开始不断深入到蒙特卡洛,讨论了若干估计方法,边学习边总结吧。这次主要总结三种不需要考虑分布的方法,并分析每种方法的特点。 VaR定义 这里所说的VaR并非时间序列中的向量自回归模型(vector autoregression),而是在险价值(Value at Risk)。指的是一定概率下,一个金融资产在未来一段时间内的最大可能损失,是对金融资产风
-
下一篇
你的 JVM 还好吗?GC 初步诊断
前言 JVM的GC机制绝对是很多程序员的福音,它让Java程序员省去了自己回收垃圾的烦恼。从而可以把大部分时间专注业务身上,大大提高了业务开发速度,让产品需求尽快的落地抢占市场。但是也正因为如此,导致很多Java程序员对JVM和GC知之甚少,以我愚见大家对JVM&GC不够了解的有几个原因: 门槛太高。我们平常接触的spring,dubbo,java集合&J.U.C,网上都有无数优秀的文章对其深入的分析。而且都是基于Java语言,我们在学习的过程中,可以自己很容易的debug源码更深入的了解。但是JVM则不然,它是C++开发的,能同时掌握C++和Java的程序员还是很少的,自己也不太好debug分析它的源码(就是编译jvm源码,都要折腾一番)。 有价值的系列文章太少。网上几乎没有完整体系的文章,优秀的书籍也很少(可能大家听过或者看过最多的就是周志明的深入理解Java虚拟机,这确实是JVM领域比较少见的佳作)。 接触的太少。虽然我们天天写Java代码,你写的每行代码JVM都会参与工作。但是很少进行GC调优,因为JVM是如此的优秀,绝大部分情况下,它只是默默的做你背后的女人(...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能