EXT.net 1.x TreePanel的一个坑
Ext.net TreePanel有一个方法
drptreepanel.setChecked({ ids: idsarray, silent: true });
如果TreePanel里有1,3两个节点,ids内有一个5的节点,那么就会出问题,必须从新刷新页面。
将以上方法修改为
function SetChecked(treepanel, arrayids) { var rootnode = treepanel.getRootNode(); if (arrayids.contain(rootnode.id)) rootnode.getUI().checkbox.checked = true; else rootnode.getUI().checkbox.checked = false; findchildnode1(rootnode, arrayids); } function findchildnode1(node, arrayids) { var childnodes = node.childNodes; for (var i = 0; i < childnodes.length; i++) { //从节点中取出子节点依次遍历 var rootnode = childnodes[i]; if (rootnode.childNodes.length > 0) { //判断子节点下是否存在子节点 findchildnode1(rootnode, arrayids); //如果存在子节点 递归 } console.log(rootnode.id); if (arrayids.contain(rootnode.id)) rootnode.getUI().checkbox.checked = true; else rootnode.getUI().checkbox.checked = false; } } Array.prototype.contain = function (val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) { return true; } } return false; };
相应代码修改为
SetChecked(department,ids);
如果部分节点不可check,请自行增加如下判断语句,比如:
if(rootnode.checkbox!=undefined) { if (arrayids.contain(rootnode.id)) rootnode.getUI().checkbox.checked = true; else rootnode.getUI().checkbox.checked = false; }
本博客是个人工作中记录,更深层次的问题可以提供有偿技术支持。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。