Asp.net:TreeView和Index超出范围

时间:2013-10-02 11:34:55

标签: asp.net treeview treenode

我的代码(Tree1)中有一个TreeView,我将使用我的CreatTree()方法在深度中添加节点。在Debug中我理解了这一行

Tree1.Nodes[i].ChildNodes.Add(new TreeNode(i.ToString()))不会导致向树添加节点,因此循环中的错误是:

指数超出范围。必须是非负数且小于集合的大小。 参数名称:index

有人可以告诉我如何将儿童添加到某个节点?

<asp:TreeView ID="Tree1" runat="server"  >  
</asp:TreeView>

背后的代码是:

protected void CreateTree( )
        {

            Tree1.Nodes.Add(new TreeNode("0"));


            for (int i = 0; i < 4; i++)
                Tree1.Nodes[i].ChildNodes.Add(new TreeNode(i.ToString()));;



        }

2 个答案:

答案 0 :(得分:0)

您可以尝试使用以下代码,因为在专利级别您只添加了1条记录,并且您尝试在四个不同的父节点添加新的子节点。

protected void CreateTree( )
        {

            Tree1.Nodes.Add(new TreeNode("0"));


            for (int i = 0; i < 4; i++)
                Tree1.Nodes[0].ChildNodes.Add(new TreeNode(i.ToString()));;



        }

答案 1 :(得分:0)

这应该做我认为你正在寻找的事情:

protected void CreateTree()
{
    Tree1.Nodes.Add(new TreeNode("0"));

    TreeNode currentNode = Tree1.Nodes[0];

    for (int i = 0; i < 4; i++)
    {
        currentNode.ChildNodes.Add(new TreeNode(i.ToString()));
        currentNode = currentNode.ChildNodes[0];
    }
}

你最终会得到5个节点,一个在另一个之下。