用递归方法把资料绑定到TreeView控件,显示文档目录

本文介绍了一个使用 ASP.NET 实现的文件夹视图组件,该组件通过递归加载方式构建树形结构来展示用户的文件夹组织结构,并提供垃圾箱功能。组件还实现了根据用户操作动态更新界面。

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

using System.Collections.Generic;
using System.Reflection;
using System.Data;
 
partial class ViewFolder: System.Web.UI.Page
    {            
        
protected void Page_Load(object sender, System.EventArgs e)
        {
            
if (!Page.IsPostBack)
            {
                GetNotes();
            }          
        }

        
private void GetNotes()
        {            
            
//根节点            
            TreeNode tn=new TreeNode("我的文档""0"this.ControlPath + "images/folder0.gif");
            
int FolderControlID = DocumentController.GetTabId(this.PortalId, "ViewDocument");
            tn.NavigateUrl 
= Globals.NavigateURL(FolderControlID, """FolderId=0");
            TreeFolder.Nodes.Add(tn);

            DataTable dt
=null;
            
try
                {
                    dt 
= DocumentController.GetListFolder(UserId);                    
                }

                
catch (Exception exc)
                {
                    
//Module failed to load 
                    Exceptions.ProcessModuleLoadException(this, exc);
                }            
            
//增加子节点
            IntiTree(TreeFolder.Nodes , dt, 0);       

            TreeNode dustbin 
= new TreeNode("垃圾箱""-1");
            dustbin.ImageUrl 
= this.ControlPath + "images/Dustbin.gif";
            TreeFolder.Nodes.Add(dustbin);
        }
        
//递归增加子节点
        private void IntiTree(TreeNodeCollection Nds,DataTable dt, int parentId)
        {
            DataView dv
=new DataView();                      
            TreeNode tmpNd;            
//创建临时节点

            dv.Table 
= dt;
            dv.RowFilter 
= "ParentFolderId=" + parentId;        //筛选数据
            int FolderControlID = DocumentController.GetTabId(this.PortalId, "ViewDocument");

            
foreach(DataRowView drv in dv)
            {
                tmpNd
=new TreeNode();
                
int FolderId=Convert.ToInt32(drv["FolderId"]);            //当前节点的ID号
                tmpNd.Value=FolderId.ToString();
                tmpNd.Text
=drv["FolderName"].ToString();

                
string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId=");
                tmpNd.NavigateUrl 
= navUrl + drv["FolderId"].ToString() + "')"

                tmpNd.ImageUrl 
= "images/folder1.gif";   
                tmpNd.Expanded 
= false;                                  //节点是否展开   
                
//tmpNd.Target="main";                                //节点重定向的方向                 
                Nds[Nds.Count-1].ChildNodes.Add(tmpNd);               //将临时节点添加到TreeView菜单中
                IntiTree(Nds[Nds.Count-1].ChildNodes,dt,FolderId);        //递归调用,进行遍历
            }

         }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值