1

ASP ページに TreeView Web コントロールがあります。すべてのツリー ノードをプログラムで設定しています。すべてのツリー ノードでリンクを無効にしたい。次のように、一度に 1 つずつ実行できます (簡単にするために文字列配列を使用します)。

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

議論のために、複数レベルのノードがあると仮定します。そのため、入力が完了したら、すべてのノードを反復処理する簡単な方法はありません。すべてのノードに SelectAction を設定するために TreeView に設定できるプロパティはありますか?

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 に答える