日期:2014-05-19  浏览次数:20453 次

递归法添加节点到treeview的问题?
我的代码
  private   void   Bind_tvShowCity(TreeNode   pNode,int   pareID)
        {
                DataView   dv   =   this.GetMangaeItem( "select   *   from   [infinityTree] ");
                dv.RowFilter   =   "[pareID]= "   +   pareID;
                TreeNode   tempNode   =   new   TreeNode();
                foreach   (DataRowView   drv   in   dv)
                {
                        if   (pNode==null)
                        {
                                tempNode.Text=drv[ "name "].ToString();
                                tempNode.NavigateUrl=drv[ "url "].ToString();
                                tempNode.Expanded   =   false;
                                this.tvShowCity.Nodes.Add(tempNode);
                                Bind_tvShowCity(tempNode,   Int32.Parse(drv[ "id "].ToString()));
                        }
                        else
                        {
                                tempNode.Text   =   drv[ "name "].ToString();
                                tempNode.NavigateUrl   =   drv[ "url "].ToString();
                                tempNode.Expanded   =   false;
                                pNode.ChildNodes.Add(tempNode);
                                Bind_tvShowCity(tempNode,   Int32.Parse(drv[ "id "].ToString()));
                        }
                }
        }
出错提示:
索引必须位于该列表的界限内。
参数名:   index  

我现在知道是这行:   pNode.ChildNodes.Add(tempNode);     有错,
我看别人做的是这样:pNode.Nodes.Add(tempNode);    

为什么我建的TreeNode   tempNode   =   new   TreeNode();
      在调pNode时,没有Nodes属性??

谢谢讲解??


------解决方案--------------------
#region 递归绑定同一个表数据