zoukankan      html  css  js  c++  java
  • Asp.net 2.0 Treeview 动态填充,并实现无限级树

    Asp.net 2.0 Treeview 动态填充,并实现无限级树,
    数据库表关键字段:
    表: table1
     
    type_id  type_name   per_type_id
       
    0        根目录               -1
       
    1        子目录                0
       
    2        子目录2             0
       
    3        子子目录              2
       .
       
    9        根目录二             -1

     C#代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;



    public partial class tree : System.Web.UI.Page
    {
      
        
    protected void Page_Load(object sender, EventArgs e)
        
    {

            TreeView1.Nodes.Clear();

            DataTable dt 
    = tree_table();                  
            DataView dv 
    = new DataView(dt);
            dv.RowFilter 
    = "type_id = 0";

            
    foreach (DataRowView drv in dv)
            
    {
                TreeNode node 
    = new TreeNode();
                node.Text 
    = drv["type_name"].ToString();
                node.Value 
    = drv["type_id"].ToString();
                node.NavigateUrl 
    = "?s=" + drv["type_id"].ToString();
                TreeView1.Nodes.Add(node);
                AddChildNode(dt, node);
            }

           
            
        }


        
    private DataTable tree_table()
        
    {
           
            
    //hooyesDataLink 为配置中数据连接字符串键名
            SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["hooyesDataLink"]);
            SqlDataAdapter sda 
    = new SqlDataAdapter("select * from table1", con);
            DataTable dt 
    = new DataTable();
            sda.Fill(dt);
            
    return dt;
        }


        
    #region 递归以实现无限级树 
        
    private void AddChildNode(DataTable dt, TreeNode node)
        
    {
            DataView dv 
    = new DataView(dt);//建立dt的表视图
            dv.RowFilter = "per_type_id = '" + node.Value + "'"//过滤
            foreach (DataRowView drv1 in dv)
            
    {
                TreeNode ChildNode 
    = new TreeNode(); 
                ChildNode.Text 
    = drv1["type_name"].ToString();
                ChildNode.Value 
    = drv1["type_id"].ToString();
                ChildNode.NavigateUrl 
    = "?s=" + drv1["type_id"].ToString();
                ChildNode.Expanded 
    = true;//展开属性为FALSE

                node.ChildNodes.Add(ChildNode);


                AddChildNode(dt, ChildNode);
            }

        }

        
    #endregion



    }


    效果:

    Feedback

  • 相关阅读:
    poj 2479
    纯CSS实现小圆点和三角形图案
    HDOJ1084 What Is Your Grade?
    4星|《一世富贵》:穿越到宋朝去抢了狄青、范仲淹的风头
    世界不是平的,发达国家在本地生产越来越合算。观点宏大,证据薄弱:3星|《后全球化时代》
    饥饿疗法是目前唯一确信能够延缓衰老的办法:4星|《三联生活周刊》2018年3期
    4星|《重塑》:消费者的信息能力是一个重要的经济变量。新颖的、有见地的国人原创经济理论
    3星|《高情商谈判》:谈判中控制情绪非常重要
    中间商赚差价让世界更美好:3.5星|《中间人经济》
    3.5星|《新零售的未来》:中美两国零售业的现状的分析和未来的展望
  • 原文地址:https://www.cnblogs.com/yongheng178/p/1284256.html
Copyright © 2011-2022 走看看