ext js 创建树
var Tree = Ext.tree;
deptTree = new Tree.TreePanel({
el : elementId,
autoScroll:true,
animate:true,
enableDD:true,
containerScroll: true,
loader: new Tree.TreeLoader({
dataUrl: CONTEXT_PATH + "/depts/deptTree.do",
baseParams: filter
})
});
// set the root node
root = new Tree.AsyncTreeNode({
text: rootDesc,
draggable:false,
id:'-1'
});
deptTree.setRootNode(root);
// render the deptTree
deptTree.render();
root.expand();
ext js 重新加载树
/**
* 重新加载树
*
* @param {f}
* f 过滤树的条件 如:{placeid:'xxxxx'}
*/
reload : function (f){
filter = f;
var loader = deptTree.getLoader();
deptTree.on('beforeload', function(){
loader.dataUrl = loader.dataUrl ;
loader.baseParams = filter;
});
root.reload();
}
//级联选中
tree.on('checkchange', function(node, checked) {
node.expand();
node.attributes.checked = checked;
node.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange', child, checked);
});
}, tree);
//删除节点
function removeChildNodes(node) {
while(node.firstChild) {
removeChildNodes(node.firstChild);
}
if(node.getDepth() != "0") {
node.remove();
}
}
/**
* 取得所有叶子节点中checked 为true的节点ID
*/
function getCheckedNodesId(node) {
var checked = [];
if (node.isLeaf()) {
if (node.getUI().isChecked() || node.attributes.checked) {
checked.push(node.id);
}
}
else {
for (var i = 0; i < node.childNodes.length; i++) {
checked = checked.concat(getCheckedNodesId(node.childNodes[i]));
}
}
return checked;
};
function getAllChecked() {
return getCheckedNodesId(tree.getRootNode());
}