[ASP.NET1.1]Common层通用代码之树型控件递归加入子项方法

本文介绍了一种使用C#实现的递归方法来构建树形菜单的方法。该方法通过遍历数据表并根据父节点ID来创建树节点,最终形成一个完整的树形结构。适用于网站后台管理系统的菜单构建。

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

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Web.UI.WebControls;

namespace Common
{
    
public class TreeControls
    
{
        
        
private string NodeID;
        
private string ParentNodeID;
        
private string NodeName;
        
private string NodeUrl;

        
private System.Data.DataTable tabtree;

        
private StringBuilder Filter;

        
public TreeControls(DataTable tabtree, string NodeID, string ParentNodeID, string NodeName, string NodeUrl)
        
{
            
this.NodeID = NodeID;
            
this.ParentNodeID = ParentNodeID;
            
this.NodeName = NodeName;
            
this.NodeUrl = NodeUrl;

            
this.tabtree = tabtree;
        }



        
// 从根节点开始递归调用显示子树
        public void InitTree(TreeNodeCollection Nds, string parentId)
        
{
            TreeNode tmpNd;
            Filter 
= new StringBuilder();
            Filter.Append(
this.ParentNodeID.ToString());
            Filter.Append(
"='");
            Filter.Append(parentId);
            Filter.Append(
"'");

            DataRow[] rows 
= tabtree.Select(Filter.ToString());

            
foreach (DataRow row in rows)
            
{
                tmpNd 
= new TreeNode();

                tmpNd.ID 
= row[this.NodeID.ToString()].ToString();
                tmpNd.Text 
= row[this.NodeName.ToString()].ToString();
                tmpNd.NavigateUrl 
= row[this.NodeUrl.ToString()].ToString();
                Nds.Add(tmpNd);
                InitTree(tmpNd.Nodes, tmpNd.ID);
            }

        }

        
    }

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值