Asp.net用TreeView方法

该博客展示了使用ASP.NET实现目录树数据绑定的代码。包含Page_Load方法进行页面初始化,BuildConstItems方法绑定目录树数据,CreateDocTree方法从数据库读取第一级目录信息,LoadSubFolder方法递归获取指定目录下所有目录信息,还涉及获取DataView和DATASET数据的类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

private void Page_Load(object sender, System.EventArgs e)

         {

              if(!this.IsPostBack)

              {

                   // this.PageBegin(true);

                   _empid=Convert.ToInt16(this.Empid);

                   BuildConstItems(TvwDoc);

                   TvwDoc.ExpandLevel=2;

              }

             

 

         }

//绑定目录树的所有数据,包括静态节点和动态节点

         public void BuildConstItems(TreeView TvwTree)

         {

              TreeNode subnode1=new TreeNode();

              subnode1.Text="文件管理";

              subnode1.ID="BB";

              subnode1.ImageUrl="images/folder.gif";

              subnode1.ExpandedImageUrl="images/folderopen.gif";

              subnode1.NavigateUrl="";

              subnode1.Target="";

              TvwTree.Nodes.Add(subnode1);

              CreateDocTree(subnode1);

         }

//从数据库读取第一级目录信息,分别加到目录树中,并调用其他方法将所有目录绑定到目录树控价

         private void CreateDocTree(TreeNode node)

         {

              DocTree doctree=new DocTree();

              DataView dv=doctree.GetTreeNodeFolder(0);

              int nodecounts=dv.Count;

              for(int i=0;i<nodecounts;i++)

              {

                   int id=Convert.ToInt32(dv[i].Row[0].ToString());

                   int hifolder=Convert.ToInt32(dv[i].Row[2].ToString());

                   string foldername=dv[i].Row[15].ToString();

                   TreeNode tvnode=new TreeNode();

                   tvnode.Text=foldername;

                   tvnode.ID=Convert.ToString(id);

                   tvnode.ExpandedImageUrl="images/folderopen.gif";

                   tvnode.ImageUrl="images/folder.gif";

                   tvnode.NavigateUrl="";

                   tvnode.Target="";

                   node.Nodes.Add(tvnode);

                   LoadSubFolder(tvnode,id);

              }

         }

 //采用递归方法获得指定目录下的所有目录信息,并绑定到该目录节点下

         private void LoadSubFolder(TreeNode node,int hifolderid)

         {

              DocTree doctree=new DocTree();

              DataView dv=doctree.GetTreeNodeFolder(hifolderid);

              int nodecounts=dv.Count;

              if(nodecounts!=0)

              {

                   for(int i=0;i<nodecounts;i++)

                   {

                       int id=Convert.ToInt32(dv[i].Row[0].ToString());

                       int hifid=Convert.ToInt32(dv[i].Row[2].ToString());

                       string foldername=dv[i].Row[0].ToString();

                       TreeNode tvnode=new TreeNode();

                       tvnode.Text=foldername;

                       tvnode.ID=Convert.ToString(hifid);

                       tvnode.ImageUrl="images/folder.gif";

                       tvnode.ExpandedImageUrl="images/folderopen.gif";

                       tvnode.NavigateUrl="";

                       tvnode.Target="";

                       node.Nodes.Add(tvnode);

                       LoadSubFolder(tvnode,id);

                   }

              }

         }

 

//得到DataView的类

public class DocTree

     {

         public DocTree()

         {

              //

              // TODO: 在此处添加构造函数逻辑

              //

         }

         public DataView GetTreeNodeFolder(int hifolderid)

         {

              FileData data=(new FileA()).GetFolderTree();

              DataView dv=data.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView;

              dv.RowFilter="hifolderid="+hifolderid;

              return dv;

         }

         public DataView GetTreeNodeFolderII(int folderid)

         {

              FileData data=(new FileA()).GetFolderTree();

              DataView dv=data.Tables[FileData.FMDOCFOLDER_TABLE].DefaultView;

              dv.RowFilter="forderid="+folderid;

              return dv;

         }

     }

//获取DATASET数据的类

         public FileData GetFolderTree()

         {

              dsCommand=new SqlDataAdapter("fmLoadFolderTree",CONN);

              if(dsCommand==null)

              {

                   throw new System.ObjectDisposedException(GetType().FullName);

              }

              dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;

              FileData data=new FileData();

              dsCommand.Fill(data,FileData.FMDOCFOLDER_TABLE);

              return data;

 

         }

一共三步,分三层,数据表里要设父文件夹和子文件夹

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值