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

时间:2015-05-18 17:02:05

标签: c# asp.net webforms treeview

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

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

1 个答案:

答案 0 :(得分:0)

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