extJs树结构展开问题?

2025-01-06 08:31:13
推荐回答(2个)
回答1:

treepanel:
expandPath ( String path , [ String attr ], [ Function callback ] ) : void
展开当前TreePanel中的指定路径。可以使用 Ext.data.Node.getPath 方法从一个节点中获取路径。
参数:
path : String
attr : String
可选 path中使用的参数(更多信息参见Ext.data.Node.getPath)
callback : Function
可选 展开完成时的回调方法。回调方法将被传入以下参数: (bSuccess, oLastNode)。 bSuccess是展开是否成功标志,oLastNode为被展开的节点。
返回值:void

getNodeById ( String id ) : Node
根据id从树中获取节点
根据id从树中获取节点
参数:
id : String
返回值:Node

getRootNode () : Node
返回当前树的root节点
返回当前树的root节点
参数:
无。
返回值:Node

treenode:
getPath ( [ String attr ] ) : String
返回当前节点的路径。该路径可以用来编程展开或者选中当前节点。
返回当前节点的路径。该路径可以用来编程展开或者选中当前节点。
参数:
attr : String
(可选) 路径使用的参数(默认值为节点的id)
返回值:
String
路径

把这些方法组合下,然后你在写点逻辑代码,就能控制你想展开的任意节点了。
viewTree.expandPath(viewTree.getRootNode().getPath());// 展开根节点
viewTree.expandPath(viewTree.getNodeById (‘id’).getPath());// 展开id的那个节点

回答2:

var root=tree.getRootNode();
if(root.childNodes.length<=2){
for(var i=0;i root.childNodes[i].expand();
}
}else{
root.childNodes[0].expand();
root.childNodes[1].expand();
root.childNodes[2].expand();
}
-----------------------------------------------------------------------------------------------
好久不用ext了,你试试看吧,看看api,这个问题肯定好解决的