.NET平台下创建动态Web树形结构程序设计

本文介绍了使用TreeView控件创建树形结构的方法。以MS - SQL SERVER 2000数据库为例,涉及MainBoards和SubBoards两个表。通过连接数据库、填充DataSet、添加主节点和子节点等步骤实现树形结构,并给出了相应代码,最后调试达到预期效果。

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

使用TreeView控件创建树形结构

  数据库结构设计

   本文使用的是MS-SQLSERVER2000,涉及到以下两个数据库表:

表名

说明

表名

说明

MainBords

主版编号表

SubBorads

子版表

 

 

 

 

 

各表中的字段如下:

MainBoards中的字段设置

字段

类型

说明

MainID

整型

索引号

MainName

字符型

主版名称

 SubBoards中的字段设置:

 SubBoards中的字段设置:

 

字段

类型

说明

SubID

整型

索引号

MainID

整型

对应的主版编号

SubName

字符型

子版名称

 

字段

类型

说明

SubID

整型

索引号

MainID

整型

对应的主版编号

SubName

字符型

子版名称

 

 

 

 

 

32 创建树形结构:

32 创建树形结构:

 32 创建树形结构:

   要实现树形结构,我们首先必须添加主节点,也就是MainBoards表。

   先连接数据库:

SqlConnection CN = new SqlConnection();

      //初始化连接字符串,请根据实际情况修改

CN.ConnectionString= "data source=localhost;initial catalog=bbs;persist security info=False;user id=sa;Password=sa;";

                   CN.Open();

                  SqlDataAdapter adp = new SqlDataAdapter("select * from MainBoards",CN);

                   DataSet ds=new DataSet();

                   adp.Fill(ds);

                  

             

  添加主节点 

int numMain=ds.Tables[0].Rows.Count;

for(int i=0;i<numMain;i++)

                   {

                       TreeNode Node=new TreeNode() ;

                       Node.Text =ds.Tables[0].Rows[i][1].ToString();

                       tree.Nodes.Add(Node);

                       Node.Expanded=true;

                      

                       int MainID=Convert.ToInt32(ds2.Tables[0].Rows[i][0].ToString());

                   //调用AddSubTree方法添加子节点  

AddSubTree(MainID,Node);

    

AddSubTree方法

 

 

 

 

 

 

              public void AddSubTree(int MainID,TreeNode pNode)

         {  //读取SubBorads表中的内容

              SqlConnection con = new SqlConnection();

              con.ConnectionString= "data source=localhost;initial catalog=bbs;persist security info=False;user id=sa;Password=sa;";

              con.Open();

              SqlDataAdapter adp1 = new SqlDataAdapter("select * from SubBoards where MainID='"+MainID+"'",con);

              DataSet ds1=new DataSet();

              adp1.Fill(ds1);

              int numSub=ds1.Tables[0].Rows.Count;

              //在给定的主节点下添加子节点

for(int i=0;i<numSub;i++)

              {

                       TreeNode Node=new TreeNode() ;

                       Node.Text =ds1.Tables[0].Rows[i][2].ToString();

                       pNode.Nodes.Add(Node);

                   //在此设置节点点击以后定向到页面:

                      Node.NavigateUrl="display.aspx?id=";

                            Node.Expanded=false;}

         }           

最后调试实现如下效果:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值