今天在项目中遇到一个需求,页面加载的时候需要根据从后台数据库中查到的数据(一组treePabel的节点的ID),判断带有CheckBox的TreePanel中哪些呈现选中状态..我的解决方法是遍历整个TreePanel节点,取到每个节点的属性从而判断是否硬挨选中,baidu了半天都没发现有关于这方面的解决方案..最终经过不懈努力终于解决..舒坦~~
//tree为TreePanel的名称 var nodevalue = ""; //定义一个全局变量,保存节点的属性(id或值等) function getRoot(tree) { var root = value.getRootNode(); //获取根节点 getAllNodes(root); //用递归法获取所有子节点 nodevalue = nodevalue.sunstring(0, nodevalue.length - 1); //alert(nodevalue); return nodevalue; } //获取所有的子节点 function getAllNodes(root) { var childnodes = root.childNodes; var child = ""; for (var i = 0; i < childnodes.length; i++) { //从节点中取出子节点依次遍历 child = childnodes[i]; nodevalue += child.id + ",";//这里可以取节点里的任何属性 if (child.hasChildNodes()) { //判断子节点下是否存在子节点 getAllNodes(nd); //如果存在子节点 递归 } } }
这里在补充两个方法:(node为节点)设置带有CheckBok的TreePanel设置为选中状态
node.getUI().toggleCheck(true); //设置UI状态为选中状态 node.attributes.checked = true; //设置节点属性为选中状态
浙公网安备 33010602011771号