Ext TreePnael选中节点及获取选中的节点
function checkNode(node) {
//Ext.Msg.alert('提示',node.getUI().isChecked() );
uncheckParentNode(node);
checkChildNodes(node, node.getUI().isChecked());
}
function checkChildNodes(node, checked) {
var nodeArray = node.childNodes;
for (var i = 0; i < nodeArray.length; i++) {
nodeArray[i].getUI().checkbox.checked = checked;
if (nodeArray[i].hasChildNodes())
checkChildNodes(nodeArray[i], checked);
}
}
function uncheckParentNode(node) {
// todo unselected all children
if (node.parentNode != undefined) {
var checked = getcheckcount(node) != ""; //递归中返回不了0,不知为什么
if (node.parentNode.getUI().checkbox != undefined) {
node.parentNode.getUI().checkbox.checked = checked;
}
uncheckParentNode(node.parentNode);
}
}
function getcheckcount(node) {
var count = 0;
var nodeArray = node.parentNode.childNodes;
for (var i = 0; i < nodeArray.length; i++) {
if (nodeArray[i].getUI().isChecked()) {
count++;
}
}
return count;
}
//获取选中节点
function getCheckedNode(node) {
var result = "";
//判断根节点是否选中
if (node.getUI().checkbox.checked) {
if (node.id != "root") {
result += node.id + ",";
}
}
var treeNodes = node.childNodes;
//遍历根节点下的所有子节点
for (var i = 0; i < treeNodes.length; i++) {
if (treeNodes[i].getUI().checkbox.checked) {
result += treeNodes[i].id + ",";
if (treeNodes[i].childNodes.length > 0) {
var tmp = getCheckedNode(treeNodes[i]);
result = tmp;
}
}
}
return result;
}