在.net 中。怎样求ThreeView某个节点的深度,,怎样用算法实现..
ThreeView 这个自己就有这个属性吧
自带属性level,或者用递归自己遍历也容易
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { int i = 0; TreeNode selectedNode = this.TreeView1.SelectedNode; while (true) { if (selectedNode.Parent != null) { i++; selectedNode = selectedNode.Parent; } else { break; } } Response.Write(i); }
是求下面有多少层。不是向上的。是向下..
@彬彬@科比: 子节点中最深的?
如果是:
试试这个:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { int max = 0,tempMax=0; TreeNode selectedNode = this.TreeView1.SelectedNode; FindMaxDeepNum(selectedNode, ref max,tempMax); Response.Write(max); }
private void FindMaxDeepNum(TreeNode node, ref int max, int temp) { if (node.ChildNodes.Count > 0) { foreach (TreeNode n in node.ChildNodes) { temp++; if (temp > max) { max = temp; } if (n.ChildNodes.Count > 0) { FindMaxDeepNum(n, ref max,temp); } temp--; } } }
@chenping2008:就是要层数。。。(以它为父节点。总共有多少层的意思)
vs自带的有这个属性吧?要不你自己写一个遍历一下
递归 遍历
遍历个来看看