2013-04-26 73 views
0

我在ASP页面上有一个TreeView Web控件。我以编程方式填充所有树节点。我想禁用所有树节点上的链接。我可以做一个在一个时间,这样的(使用简单起见字符串数组):在ASP.NET TreeView控件的所有树节点上设置SelectAction

for each (string strValue in strValues) 
{ 
TreeNode objNode = new TreeNode(strValue); 
objNode.SelectAction = TreeNodeSelectAction.None; 
objTreeView.Nodes.Add(objNode); 
} 

承担参数的缘故,我有节点的多个层次的,所以没有一个简单的方法一旦完成填充,遍历所有节点。是否有一个属性,我可以在TreeView上设置为所有节点设置SelectAction?

回答

1

TreeView不支持任何属性来执行此操作。然而,你可以通过使用递归方法

+0

感谢。我只是在创建每个节点时设置SelectAction,所以再次遍历它们是没有意义的。我希望在TreeView级别有一个属性可以禁用所有节点,就像“objTreeView.ShowCheckBoxes = TreeNodeTypes.None”一样。 – CigarDoug 2013-04-26 16:58:24

1

做这应该解决您的问题:

protected void Page_Load(object sender, EventArgs e) 
    { 
     processNode(trvTest.Nodes); 
    } 

    private void processNode(TreeNodeCollection nodes) 
    { 
     foreach (TreeNode node in nodes) 
     { 
      node.SelectAction = TreeNodeSelectAction.None; 
      if (node.ChildNodes.Count > 0) 
       processNode(node.ChildNodes); 
     } 
    }