you got an infinite loop there, try to change
InitTree(Nds[Nds.Count-1].Nodes,intId);
===>
InitTree(tmpNd.Nodes,tmpNd.ID);

解决方案 »

  1.   

    这是我的初始化方法:
    private void IntiTree(DataSet objDataSet,TreeNodeCollection Nds,
    String ParentID,String ParentField,String NameField,String NodeIDField)
    {
    DataView dv=new DataView() ; TreeNode tmpNd;
    String strId;
    dv.Table = objDataSet.Tables[0]; if (ParentID=="null")
    dv.RowFilter=ParentField+ " is null";
    else
    dv.RowFilter=ParentField + "='"+ParentID+"'"; foreach(DataRowView objRow in dv)
    {
    tmpNd=new TreeNode();
    //if (objRow[NodeIDField]!=null)
    strId=Convert.ToString((Guid) objRow[NodeIDField]);
    //strId=NodeIDField;
    tmpNd.Tag=strId.ToString();
    tmpNd.Text=objRow[NameField].ToString();
    Nds.Add(tmpNd);
    IntiTree(objDataSet,Nds[Nds.Count-1].Nodes,strId,ParentField,NameField,NodeIDField);               
    }            }
    这是我的表字段:WerehouseClassID,WerehouseClassCode, WerehouseClassName,WerehouseClassParentID,WerehouseClassLevel