• ASP.NET2.0树型数据的显示源代码(递归)


    ASP.NET 2.0 树型数据的显示源代码(递归)

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    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;

    public partial class _Default : System.Web.UI.Page
    {

    SqlConnection conn = new SqlConnection("workstation id="cyz";user id=sa;password=****;initial catalog=pubs;persist security info=false");
    DataSet ds = new DataSet();

    protected void Page_Load(object sender, EventArgs e)
    {
    if (! (IsPostBack) )
    {
    SqlDataAdapter da = new SqlDataAdapter("select * from t_tree order by parentid", conn);
    da.Fill(ds, "t_tree");
    InitTree0();


    }
    }
    private void InitTree0() //根结点加载函数
    {
    TV.Nodes.Clear(); //TV为TreeView控件
    DataRow[] rows = ds.Tables["t_tree"].Select("parentid=0");
    for (int i = 0; i < rows.Length; i++)
    {
    TreeNode T_root = new TreeNode();
    DataRow dr = rows[i];
    T_root.Text = dr["Descricpt"].ToString();
    TV.Nodes.Add(T_root);
    InitTree(T_root, dr["id"].ToString());//根结点加载完后,开始调用加载子结点的函数,并开始递归。
    }
    }
    private void InitTree(TreeNode Nd,String Parent_id) //子树结点加载函数
    {
    DataRow[] rows = ds.Tables["t_tree"].Select("parentid="+Parent_id );
    if (rows != null)
    {
    for (int i = 0; i < rows.Length;i++ )
    {
    TreeNode Tnd = new TreeNode();
    DataRow dr=rows[i];
    Tnd.Text = dr["Descricpt"].ToString();
    Nd.ChildNodes.Add(Tnd);
    InitTree(Tnd,dr["id"].ToString());//递归调用
    }
    }
    }
    }

    /*后注:
    一、T_Tree表生成脚本
    CREATE TABLE [dbo].[T_Tree] (
    [ID] [int] NOT NULL ,
    [ParentID] [int] NOT NULL ,
    [Descricpt] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
    ) ON [PRIMARY]
    GO
    二、T_Tree表数据

    Parentid=0的为根结点
    三、执行后结果

    */
     

     

  • 相关阅读:
    SQL使用基本准则
    SQL使用技巧-或许你不知道的10条SQL技巧
    RabbitMQ安装遇到的坑
    编译安装python
    批量化杀死进程
    python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
    c++中 . 和 -> 的区别是什么?
    C语言中的malloc、new、memset函数解析
    C语言中static关键字用法
    struct和typedef struct的区别
  • 原文地址:https://www.cnblogs.com/0000/p/1601061.html
Copyright © 2020-2023  润新知