ASP.NET 无限级树的加载

OPW_XT_MK OP_W_XT_MK  =   new  OPW_XT_MK(AppPublic.GetConnectionString());
    
protected   void  Page_Load( object  sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            
//生成树
            buildTree();
        }

    }


    
/**/ /// 
    
/// 添加树形菜单的结构
    
/// 

     private   void  buildTree()
    
{
        OP_W_XT_MK.GetMKMC(CurrentUser.Id, 
0);
        
foreach (DataRow dbRow in OP_W_XT_MK.dataView.Table.Rows)
        
{
            
if (int.Parse(dbRow[TABLE_W_XT_MK.COLUMN_SJBH].ToString()) == 0)
            
{
                TreeNode newNode;
                
//添加node属性
                newNode = CreateNode(dbRow[TABLE_W_XT_MK.COLUMN_MKMC].ToString(), false);
                TV_menu.Nodes.Add(newNode);
                PopulateSubTree(dbRow, newNode);
            }

        }

    }


    
/**/ /// 
    
/// 添加子节点
    
/// 

    
/// 表的一行数据
    
/// 节点

     private   void  PopulateSubTree(DataRow dbRow, TreeNode node)
    
{
        
//点击该节点则指向与这个节点相关的业务处理页面
        node.NavigateUrl = dbRow[TABLE_W_XT_MK.COLUMN_URL].ToString();

        
foreach (DataRow childRow in OP_W_XT_MK.dataView.Table.Select(TABLE_W_XT_MK.COLUMN_SJBH + "=" + dbRow[TABLE_W_XT_MK.COLUMN_MKBH].ToString()))
        
{
            TreeNode childNode 
= CreateNode(childRow[TABLE_W_XT_MK.COLUMN_MKMC].ToString(), false);
            childNode.Value 
= childRow[TABLE_W_XT_MK.COLUMN_MKBH].ToString();
            node.ChildNodes.Add(childNode);
            PopulateSubTree(childRow, childNode);
        }

    }


    
/**/ /// 
    
/// 添加node 的属性  expanded 的属性是设置节点是否展开.
    
/// 

    
/// 节点显示内容
    
/// 设置节点是否展开
    
/// 树节点

     private  TreeNode CreateNode( string  text, Boolean expanded)
    
{
        TreeNode node 
= new TreeNode();
        node.Text 
= text;
        node.Expanded 
= expanded;
        
return node;
    }

转载于:https://www.cnblogs.com/6602300/archive/2006/08/16/dai.html

你可能感兴趣的:(ASP.NET 无限级树的加载)