tree: 树 node:节点
1、全部展开 tree.expandAll();
2、全部收缩 tree.collapseAll();
3、得到父节点 node.parentNode
4、判断是否有父节点 node.parentNode==null
5、判断是否有子节点 node.hasChildNodes()
6、获取下一级的所有子节点 node.eachChild(function(child){})
7、获取选择的节点 tree.getSelectionModel().getSelectedNode()
8、设置选中节点 node.select()
9、上移节点 node.selectPrevious();
10、下移节点 node.selectNext();
11、获取节点ID node.id 注:如果这种方式拿出来的ID带有Store 的ID 则试试 node.internalId
12、获取节点值 node.text
13、获取节点提示 node.attributes.qtip
14、node.attributes.mid//这里的mid是我数据库中一个字段,我在查询的时候一并传入到客户端,这时我就 可以使用node.attributes.mid,这样一来我们就可以隐藏一些我们使用但又不必 让客户知道的相关属性了。。。
带选择框 注:只需在服务器返回的json数据每一个节点加上checked:true或者false属性 就会出现带选择框 的树
15、获取选中的节点
var nodes=tree.getChecked();
Ext.each(nodes,function(node){})
16、获取是否选择 node.getUI().checkbox.checked;
17、设置节点选择 node.ui.toggleCheck(trye);//显示选中 node.attributes.checked=true//赋值
18、设置一个新的节点
var newNode=new Ext.tree.TreeNode({id:'id',text:'text',iconCls:'url',qtip:'tip'})
19、插入新的节点 node.appendChild(newNode);
20、删除节点 node.remove();
21、这里所说的选中时指鼠标点击一个节点背景变色的选中,而非checkBox的勾选,若要获得checkBox的选中 使用tree.getChecked();
Ext.tree.TreePanel.getSelectionModel().getSelectedNode();
Ext.tree.TreePanel.getSelectionModel()获得的是一个TreeSelectionModel对象,
Ext.tree.MultiSelectionModel目前在Ext中有两个 Ext.tree.DefaultSelectionModel.getSelectedNode()返回的是单个节点对象
22、选中节点和父节点
1)、父节点选择
function parentclick(node)
{
var parent=node.parentNode;//获取父节点
var flag=node.getUI().checkbox.checked;//判断是否选中
if(parent!=null)//父节点不为空
{
parent.ui.toggleCheck(flag);//选中
parent.attributes.checked=flag;//给值
parentclick(parent);//递归选中节点
}
}
2)、选择子节点
function treeclick(node){
var flag=node.getUI().checkbox.checked;//获取选中状态
if(node.hasChildNodes()){ //是否有子节点
node.eachChild(function(child)){ //循环下一级的所有子节点
child.ui.toggleCheck(flag); //选中
child.attributes.checked=flag; //赋值
treeclick(child); //递归选中子节点
}
}
}
3)、2个函数合并执行
function check(node)
{
tree.suspendEvents();//暂停所有监听事件的执行
treeclick(node);
parentclick(node);
tree.resumeEvents();//重新开始所有监听事件的执行
}