用TreeView构建树型目录(C#版)
点击次数:19 次 发布日期:2008-11-26 10:56:57 作者:源代码网
|
源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 参与了一个大型社区程序的开发,现在将相关开发经验陆续总结出来,和大家探讨一下。本节内容主要主要讨论的是用TreeView生成无限级分类的树型目录的问题,相关代码摘录自社区程序中的一个文章发布管理系统中的目录管理部分。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 一、数据库设计 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 BBS_BestArticleFolder 精华区目录表 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 Key: FolderID 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 Field name 源代码网推荐 源代码网推荐 源代码网推荐 Type 源代码网推荐 源代码网推荐 源代码网推荐 Length 源代码网推荐 源代码网推荐 源代码网推荐 Default 源代码网推荐 源代码网推荐 源代码网推荐 Description 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 FolderID 源代码网推荐 源代码网推荐 源代码网推荐 int 源代码网推荐 源代码网推荐 源代码网推荐 4 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 ID(自动编号) 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 ParentFolderID 源代码网推荐 源代码网推荐 源代码网推荐 int 源代码网推荐 源代码网推荐 源代码网推荐 4 源代码网推荐 源代码网推荐 源代码网推荐 0 源代码网推荐 源代码网推荐 源代码网推荐 父目录ID 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 FolderName 源代码网推荐 源代码网推荐 源代码网推荐 Nvarchar 源代码网推荐 源代码网推荐 源代码网推荐 80 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 目录名 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 BoardID 源代码网推荐 源代码网推荐 源代码网推荐 int 源代码网推荐 源代码网推荐 源代码网推荐 4 源代码网推荐 源代码网推荐 源代码网推荐 0 源代码网推荐 源代码网推荐 源代码网推荐 版块ID 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 CreaterUserID 源代码网推荐 源代码网推荐 源代码网推荐 int 源代码网推荐 源代码网推荐 源代码网推荐 4 源代码网推荐 源代码网推荐 源代码网推荐 0 源代码网推荐 源代码网推荐 源代码网推荐 创建者ID 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 AddTime 源代码网推荐 源代码网推荐 源代码网推荐 DateTime 源代码网推荐 源代码网推荐 源代码网推荐 8 源代码网推荐 源代码网推荐 源代码网推荐 GetDate() 源代码网推荐 源代码网推荐 源代码网推荐 创建时间 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 二、树型目录构建过程 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 1、安装TreeView控件,我想大多数人都是会安装的,不会安装的去找相关文章一下下。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 2、具体实现: 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 a 数据生成 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 #region 树的数据生成事件 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 private DataView CreateDateView(int boardID) 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 BBSBestArticleFolderCollection bafc=new BBSBestArticleFolderCollection(); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 bafc.GetInfoByParentFolderID(boardID,-1); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 int bafcCount=bafc.Count; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 DataTable dt = new DataTable("table"); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dt.Columns.Add("FolderID",System.Type.GetType("System.String")); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dt.Columns.Add("FolderName",System.Type.GetType("System.String")); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dt.Columns.Add("ParentFolderID",System.Type.GetType("System.String")); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 for(int i=0;i 源代码网推荐 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 DataRow dr=dt.NewRow(); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dr[0]=bafc[i].ID; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dr[1]=bafc[i].FolderName; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dr[2]=bafc[i].ParentFolderID; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dt.Rows.Add(dr); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dv=dt.DefaultView; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 return dv; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 一点说明:BBSBestArticleFolderCollection对象是个集合类,里面存储了所有符合条件的数据集合,GetInfoByParentFolderID是其中的一个方法,根据一定条件填充集合类的,此文主要讲TreeView构建树型目录,此处会在另外的文章中详述。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 b 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 #region TreeView节点生成方法 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 private void CreateTree(TreeNodeCollection folderTreeNodeCollection ,int parentID) 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 dv.RowFilter= "ParentFolderID="+parentID; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 int tmpParentFolderID=0; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 foreach(DataRowView drv in dv) 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 TreeNode tn=new TreeNode(); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 tn.ID=drv.Row["FolderID"].ToString(); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 tn.Text=drv.Row["FolderName"].ToString().Trim(); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 tmpParentFolderID=Int32.Parse(drv.Row["ParentFolderID"].ToString().Trim()); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 //tn.CheckBox=true; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 folderTreeNodeCollection.Add(tn); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 CreateTree(folderTreeNodeCollection[folderTreeNodeCollection.Count - 1].Nodes,Int32.Parse(tn.ID)); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 一点解释:递归构建树的各级节点,其中的dv就是上一个方法生成的DataView 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 c 取得数据的方法有了,生节节点的方法也有了,那么剩下的就是调用了 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 CreateTree(TreeView1.Nodes,0); 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 一点解释:TreeView1是控件ID,这个大家都知道吧,这里的0其实就是表示顶级目录,从顶级目录递归调用下去DI。 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
