有时候我们需要让Tree中的部分CheckBox不可用,该怎么实现了?
首先,我们需要判断哪些CheckBox不可用了,这个操作一般在后台实现,我们只要为每个Node加个属性就可以了,如以下是从后台传回的JSON值:
// 下面是树加载时从后台传回数据中某个节点的值,节点的isEnable属性为自己添加的
var json ={
isEnable:"Y","children":null,"disabled":false,
"expanded":true,"href":null,
"hrefTarget":null,"iconCls":"","id":"2-2~group",
"leaf":true,"text":"中餐","uiProvider":null
}
// 将树中属性isEnable为N的节点设置为不可用状态
function setEnable() {
// 下面是对一个包括三级节点的树进行循环
var nodes1 = tree3.getNodeById('root-node').childNodes;
for(var i = 0; i < nodes1.length; i++) { // 循环一级节点
var nodes2 = nodes1[i].childNodes;
for(var j = 0; j < nodes2.length; j++) { // 循环二级节点
var nodes3 = nodes2[j].childNodes;
for(var k = 0; k < nodes3.length; k++) { // 循环三级节点
// 得到该节点isEnable的值
var isEnable = nodes3[k].attributes.isEnable;
if(isEnable == 'N') {
// 如果isEnable的值为'N',就将该节点置为不可用状态
nodes3[k].disable();
}
}
}
}
}