QingHan.NET技术交流

路漫漫兮其修远,吾上下而求索....

导航

TreeView之学习点滴--绑定一个数据库表

Posted on 2006-07-12 23:17  鱼水情  阅读(957)  评论(2)    收藏  举报

今天终于做出了一个TreeView的练习,将代码发布出来与大家共同探讨,至于多个数据库表我还没有做出来,等我做出来,再发布上来,当然也希望做出来了的朋友能分享一下,呵呵....
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 tree1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)//判断是否第一次加载
        {
            DataTable dt = tree_table();//建立一个数据库表
            DataView dv = new DataView(dt);//建立表视图
            dv.RowFilter = "Node_id = 0";

            foreach (DataRowView drv in dv)
            {
                TreeNode node = new TreeNode();//定义结点
                node.Text = drv["Node_Name"].ToString();//为结点赋值
                node.Value = drv["Follow_id"].ToString();
                node.Expanded = false;//展开属性为FALSE
                TreeView1.Nodes.Add(node);//将结点作为TreeView的根结点
                AddChildNode(dt, node);
            }
        }
    }

    private DataTable tree_table()//建立一个方法
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["aaConnectionString"].ConnectionString);//建立数据库连接
        SqlDataAdapter sda = new SqlDataAdapter("select * from tree", con);//建立数据适配器
        DataTable dt = new DataTable();//new一个DataTable
        sda.Fill(dt);//进行数据填充
        return dt;//返回一个数据表dt
    }

    private void AddChildNode(DataTable dt, TreeNode node)//建立一个添加子结点方法
    {
        DataView dv = new DataView(dt);//建立dt的表视图
        dv.RowFilter = "Node_id = '" + node.Value + "'";//查找相应的结点
        foreach (DataRowView drv1 in dv)//循环
        {
            TreeNode ChildNode = new TreeNode();//定义子结点
            ChildNode.Text = drv1["Node_Name"].ToString();//为子节点添加显示文本信息
            ChildNode.Value = drv1["Follow_id"].ToString();//为子节点添加变化值列
            ChildNode.Expanded = false;//展开属性为FALSE
            node.ChildNodes.Add(ChildNode);//将根节点中加入该子节点
            AddChildNode(dt,ChildNode);//递归调用子节点
        }
    }
}


数据库代码部分:
create database aa --建立数据库aa

use aa --打开数据库

create table tree --建立表tree
(
 follow_id int,--流水号
 Node_id int,
 Node_Name varchar(200),--节点名称
)

--为表添加相应的数据
insert into tree values (1,0,'思迅餐饮管理系统')
insert into tree values (2,1,'问题管理')
insert into tree values (3,1,'需求管理')
insert into tree values (4,2,'美世家餐饮管理系统V2.0')
insert into tree values (5,2,'美世家餐饮管理系统V2.5')
insert into tree values (7,2,'美世家桑拿管理系统V2.0')
insert into tree values (8,2,'美世家美容美发管理系统V2.0')
insert into tree values (9,2,'美世家会所管理系统V2.0')
insert into tree values (6,3,'美世家餐饮管理系统V2.0')
insert into tree values (10,3,'美世家餐饮管理系统V2.5')
insert into tree values (11,3,'美世家桑拿管理系统V2.0')
insert into tree values (12,3,'美世家美容美发管理系统V2.0')
insert into tree values (13,3,'美世家会所管理系统V2.0')