为什么我的TreeView总是报错?? 
错误信息: System.Exception: Attempted to add a TreeNode to a second TreeNodeCollection. A TreeNode can belong to only one TreeNodeCollection. Remove the TreeNode from its old collection before adding it to a new one. 我的代码: 
private void Page_Load(object sender, System.EventArgs e) 

  TreeNode n1=new TreeNode(); 
  TreeView1.Nodes.Clear(); 
  for (int i=0;i<=20;i++) 
   {    
     n1.Text=i.ToString(); 
     TreeView1.Nodes.AddAt(i,n1); 
     //TreeView1.Nodes.Add(n1); 
    } 
} 能帮我看看吗?? 最好有源码!多谢!!!

解决方案 »

  1.   

    看起来,应该是:
    private void Page_Load(object sender, System.EventArgs e) 

      TreeNode n1=new TreeNode(); 
      TreeView1.Nodes.Clear(); 
      n1.Text="***";
      TreeView1.Nodes.Add(n1);  for (int i=0;i<=20;i++) 
       {    
         n1.Text=i.ToString(); 
         TreeView1.Nodes.AddAt(0,n1); //这样在第一节点下将产生20个子节点     //TreeView1.Nodes.Add(n1); 
        } 

      

  2.   

    OK了,多谢!!
    顺便问一句:iFrame是个什么冬冬??
      

  3.   

    我怎样在选择 TreeView 选项时,改变父页(page02.aspx)中的某一变量的值(例如一文本框中的文本)????假设你在选择 TreeView 选项时得到一string test
    那么你就可以用js
    window.parent.document.all.TextBox1.value=test;
      

  4.   

    在 .cs 文件中怎么实现?
    这样才以体现 Codehide 技术的优势啊!!!
      

  5.   

    我怎样在选择 TreeView 选项时,改变父页(page02.aspx)中的某一变量的值(例如一文本框中的文本)????假设你在选择 TreeView 选项时得到一string test
    那么你就可以用jswindow.parent.document.all.TextBox1.value=test;以上方法试验成功,但是此方法只对 page02.aspx 页面中的客户端控件起作用。如果要实验与服务端控件的交互, 不知有没有办法。兄弟们,帮帮忙!拜托!
      

  6.   

    可以用 xml :
    <?xml version="1.0" encoding="utf-8" ?>
    <TREENODES>
    <treenode type="root" Text="North America">
    <treenode type="folder" Text="Michigan" NavigateUrl="aaa.aspx?id=1" taget="iFrame"/>
    <treenode type="file" Text="Detroit"  NavigateUrl="aaa.aspx?id=2" taget="iFrame"/>
    <treenode type="file" Text="Farmington"  NavigateUrl="aaa.aspx?id=3" taget="iFrame"/>
    </treenode>
    </treenode>
    </TREENODES>
      

  7.   

    服务器端有一个方法,但我还没有试出来:
    private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
    {

    }
    我还不知道怎么用??  :)
      

  8.   

    以上方法试验成功,但是此方法只对 page02.aspx 页面中的客户端控件起作用。如果要实验与服务端控件的交互, 不知有没有办法。
    1.window.parent.location.href="page02.aspx?param="+test;
      然后在page02.aspx的page_load里取Request["param"]2.window.parent.document.all.TextBox1.value=test;
    window.parent.forms[0].submit();
    然后在page02.aspx的page_load里取TextBox1.Text
      

  9.   

    客户端代码使表单提交或改变url
    然后服务器端就可以获得你要的值
    之后你想要做什么都可以了这难道还不行?
      

  10.   

    可以做到,但是比较麻烦,因为IFRAME不是服务器对象,没有办法直接读取,要实现这样的功能你只能把TreeView状态保存成Session或其他的全局变量,还要自己编写一个事件处理。
    另外一种可替代的方法是不使用iframe,用user control来代替,这样相对简单些,我就是采用这种方法的。