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

本文关键字:ID 节点 TreeView ASP | 更新日期: 2023-09-27 17:49:33

我目前正在编写一个自定义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,这有点击展开/折叠图标只会展开/折叠根节点的效果。

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

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

将创建treenode的代码从Render方法移到OnPreRender方法中解决了这个问题;现在所有节点都有一个唯一的ID。