1

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

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

为了论证起见,假设我有多个级别的节点,因此一旦我完成填充,就没有一种简单的方法可以遍历所有节点。我可以在 TreeView 上设置一个属性来为所有节点设置 SelectAction 吗?

4

2 回答 2

2

TreeView 不支持执行此操作的任何属性。但是,您可以使用递归方法来做到这一点

于 2013-04-26T14:35:49.093 回答
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);
        }
    }
于 2013-04-26T15:15:34.990 回答