asp.net TreeView动态绑定数据库显示数据

简介:  假设在数据库中建立一张表, 如tb_treeview,如下创建         create table tb_treeview(                    id  int ...

 假设在数据库中建立一张表, 如tb_treeview,如下创建

         create table tb_treeview(

                    id  int not null,

                    displayName varchar(20),

                    parentId int ,

                    url varchar(100)

            );

 

向表中插入几个数据如:

       insert into tb_treeview(1,'中国',0,'');

       insert into tb_treeview(2,'安徽省',1,'');

       insert into tb_treeview(3,'合肥市',2,'');

       insert into tb_treeview(4,'江苏省',1,'');

       insert into tb_treeview(5,'南京市',4,'');

       insert into tb_treeview(6,'湖北省',1,'');

 

作为演示数据。

(1)、打开VS2005,新建一个网站项目,在Default.aspx.cs文件里添加如下代码:

...

   using System.Data.SqlClient;

  ....

   DataTable dt = new DataTable();

   public void Page_Load(object sender,EventArgs e)

   {

        if(!IsPostBack)

        {

               try

               {

                      string conString = "Data Source=.;uid=sa;pwd=;Database=master";

                      SqlConnection con = new SqlConnection(conString);

                      con.Open();

                      string strSQL = "select * from tb_treeview";

                      SqlDataAdapter da = new SqlDataAdapter(strSQL,con);

                      da.Fill(dt);

               }

               catch(Exception e)

               {

 

               }

               finally

               {

                     con.Close();

               }

               AddTreeNode(0,(TreeNode)null);

        }

   }

 

   protected void AddTreeNode(int parentId,TreeNode pNode)

   {

            TreeNode tn1 = new TreeNode(); 

            DataView dv= new DataView(dt);

            //过滤parentId,得到当前节点的所有子节点

            dv.RowFilter = "parentId="+parentId;

             foreach(DataRowView drv in dv)

             {

                   if(pNode==null)

                   {

                          tn1.Text = drv["displayName"].ToString(); //节点上要显示的名称

                          tn1.NavigateUrl = drv["url"].ToString();  //点击节点名称,跳转到指定url页面

                          TreeView1.Nodes.Add(tn1); //将根节点加入到TreeView中去

                          tn1.Expanded = true;

                          //递归调用

                          AddTreeNode(Int32.parse(drv["id"].ToString()),tn1);

                   }

                   else

                   {

                          TreeNode tn2 = new TreeNode();

                           tn2.Text = drv["displayName"].ToString();

                           tn2.NavigateUrl = drv["url"].ToString();

                           pNode.ChildNodes.Add(tn2);

                           tn1.Expanded = true;

                           //递归调用

                           AddTreeNode(Int32.parse(drv["id"].ToString()),tn2);

                   }

             }

   }

 

(2)、在浏览器中运行,打开效果如下

            +中国

             |+安徽省

             |  |_合肥市

             |+江苏省

             |   |_南京市

             |+湖北省

需要说明的是,在实际开发中,关于数据库的数据访问应该放在DAL层里,这里只是做简单的演示而已。

如果想改变已经选择的节点,和移动到该节点时字体的呈现颜色的话,可以这样设置:

<asp:TreeView ID="TreeView1" runat="server" ShowLines="True" CssClass="Menu">
            <RootNodeStyle  ForeColor="red"/>
            <SelectedNodeStyle ForeColor="gray" />
            <HoverNodeStyle ForeColor="aqua" />

</asp:TreeView>

相关文章
|
10天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
55 3
|
1月前
|
关系型数据库 MySQL 数据库
ORM对mysql数据库中数据进行操作报错解决
ORM对mysql数据库中数据进行操作报错解决
77 2
|
5天前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
14 3
|
1月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
11天前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
14天前
|
SQL 监控 数据处理
SQL数据库数据修改操作详解
数据库是现代信息系统的重要组成部分,其中SQL(StructuredQueryLanguage)是管理和处理数据库的重要工具之一。在日常的业务运营过程中,数据的准确性和及时性对企业来说至关重要,这就需要掌握如何在数据库中正确地进行数据修改操作。本文将详细介绍在SQL数据库中如何修改数据,帮助读者更好
73 4
|
14天前
|
SQL 开发框架 .NET
ASP连接SQL数据库:从基础到实践
随着互联网技术的快速发展,数据库与应用程序之间的连接成为了软件开发中的一项关键技术。ASP(ActiveServerPages)是一种在服务器端执行的脚本环境,它能够生成动态的网页内容。而SQL数据库则是一种关系型数据库管理系统,广泛应用于各类网站和应用程序的数据存储和管理。本文将详细介绍如何使用A
30 3
|
15天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
16天前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
【10月更文挑战第1天】使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
42 3
|
15天前
|
测试技术 API 数据库
云数据库之添加数据
云数据库之添加数据
17 1