ASP TreeView:所有节点都具有相同的 ID

ASP TreeView: All nodes have the same ID

我目前正在编写一个自定义 Web 表单控件,其中包括一个嵌入式 TreeView 控件。此 TreeView 控件的内容是这样以编程方式生成的:

    public void PopulateTreeView(TreeView treeView)
    {
        // Initialize with a single root node.
        treeView.Nodes.Clear();
        TreeNode currentNode = new TreeNode("root");
        treeView.Nodes.Add(currentNode);

        // Some logic with basically a depth first search through some data classes.
        {
            TreeNode node = new TreeNode(/* node label */);
            currentNode.ChildNodes.Add(node);

            if ( /* some condition */)
            {
                currentNode = node;
            }
        }

    }

渲染时,一切看起来都很好,除了生成的所有 HTML 元素的 ID 是 ControlName1n0,其效果是单击 expand/collapse 图标只会 expand/collapse 根节点。

有谁知道这是什么原因或如何解决这个问题?

Render method to the OnPreRender 方法移动代码以创建 TreeNodes 解决了问题;现在所有节点都有一个唯一的 ID。