C# TreeView无限目录树实现方法
本文实例讲述了C#TreeView无限目录树实现方法。分享给大家供大家参考,具体如下:
#region绑定客户树 protectedvoidbindTreeView() { TreeView1.Nodes.Clear(); stringuserid=Session["UserID"].ToString(); stringsqlwr=newSY_ADMINUSER().GetUserIDListByLoginUser(userid,"CUSTOMERSERVICE",false); DataTabledt=Maticsoft.DBUtility.DbHelperOra.Query("SelectPARENTID,CUSTOMERID,CUSTOMERSHORT,CUSTOMERSERVICEfromCU_CUSTOMERwhereISDELETE='0'"+sqlwr+"orderbyCUSTOMERSHORT").Tables[0]; //定义临时树节点 TreeNodetmpNd; //特殊处理 foreach(DataRowdrindt.Rows) { DataRow[]drs=dt.Select("CUSTOMERID='"+dr["PARENTID"]+"'"); if(drs.Length==0)//无上级节点 { dr["PARENTID"]="0"; } } dt.AcceptChanges(); //从DataTable中得到所有父节点为null的DataRow形成的数组 DataRow[]rows=dt.Select("PARENTID='0'"); //遍历根节点数组 foreach(DataRowrowinrows) { tmpNd=newTreeNode(); //给根节点赋值 tmpNd.Value=row["CUSTOMERID"].ToString(); tmpNd.Text=row["CUSTOMERSHORT"].ToString(); tmpNd.Expanded=true; //将节点加入到树中 TreeView1.Nodes.Add(tmpNd); AddTree(dt,TreeView1,tmpNd,row["CUSTOMERID"].ToString()); } } publicvoidAddTree(DataTabledt,TreeViewtv,TreeNodepNode,stringCUSTOMERID) { DataRow[]rows=dt.Select("PARENTID='"+CUSTOMERID+"'"); TreeNodetmpNd; foreach(DataRowrowinrows) { tmpNd=newTreeNode(); //给根节点赋值 tmpNd.Value=row["CUSTOMERID"].ToString(); tmpNd.Text=row["CUSTOMERSHORT"].ToString(); tmpNd.Expanded=true; pNode.ChildNodes.Add(tmpNd); //将节点加入到树中 //TreeView1.Nodes.Add(pNode); AddTree(dt,TreeView1,tmpNd,row["CUSTOMERID"].ToString()); } } #endregion
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。