.net的TreeView控件绑定数据库表建立树架构_vb.net treeview 与表关联-程序员宅基地

技术标签: .net  sql server  

   net本身自带的TreeView控件本身可以提供简单快捷的树结构控件,不过需要是在前台界面手动输入静态数据,只能预先设定好值,一一录入。这次使用到的方法是通过在后台代码绑定数据库表,实现动态的数据树显示。

   首先先在.net前台界面注册一个TreeView控件,并且将其放置在asp:UpdatePanel标签内,以方便以后实行异步刷新功能。如图


   数据库中会设置两张表,一张为根节点与子节点的表(主键为BaseID,根节点BaseID为1),另一张为叶节点的表(主键为VlanID)

   然后在后台编写树节点代码,分别分为三层,根节点,子节点,叶节点,点击叶节点后,再展现叶节点下具体信息,通过GirdView控件在右边空白处展示:

   首先是定义绑定树节点的根节点。


   具体方法定义如下



   这里是直接固定根节点,数据库中字段BaseID为1的为根节点,直接作为固定参数传入,而后通过方法获取一个实体类对象,然后对此根节点的各个属性进行赋值。

   接下来设置这个根节点下的各个子节点,并将其展开,在页面一打开的时候就可以看到根节点与子节点。

   


   查询获取数据库中baseID不为1的数据,并且将它们循环赋值给多个新节点,并且设置为不展开状态。

   再然后设置叶节点,当点击子节点的时候就展开子节点下的叶节点。

   

   叶节点的数据存放在数据库的另外一张表中,和子节点一样,使用循环的方式依次赋值,不过这个方法会设置在点击子节点的时候才会启动,所以一开始的叶节点是隐藏的,并未加载。

   后台调用加载方法如图:

   

   加载根节点与子节点,然后叶节点会在点击子节点后展开,触发时间需要写在前台的TreeView控件中,如:

   

  子节点点击事件

  

  

   在执行最后再调用一下BindGird方法,此方法是绑定GirdView数据的方法,将叶节点下对应的数据库另一张表的具体信息绑定到控件下,显示数据。

   最终的完成样式如下图所示:

   


   关于更进一步的节点的增删改查,需另开一篇再做说明。

   

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Annn_kk/article/details/70210751

智能推荐

Mysql断流_彻底解决ROS网页断流问题-程序员宅基地

文章浏览阅读210次。首先,检查你的ROS,确定他本身没有任何问题。然后,打开你的WINBOX登陆进去,打开防火墙规则,IP-FIREWALL-CONNECTIONS-TRACKING好了。打开TRACKING后,将里面的时间设置稍微大点。具体多大,没有确切数字,不过一定要大。最少也得30秒以上。你按照里面的默认,成倍数增加,慢慢试。下面是我自己的设置。已经没有问题了,具体什么原因,慢慢去体会。这个设置不是固定的。因为..._ros wan口断流

To display the conditions report re-run your application with 'debug' enabled.问题解决方案-程序员宅基地

文章浏览阅读8.2w次,点赞17次,收藏77次。问题描述:Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.或者:The Tomcat connector configured to listen on port 7001 failed to start. The po..._to display the conditions report re-run your application with 'debug' enable

数字经济新生态,中小企业如何发展营销数字化-程序员宅基地

文章浏览阅读233次。在新经济发展态势下,#中小企业数字化转型#是大势所趋!

python 结束进程 terminate_【Python】multiprocessing.Process.terminate()结束子进程将导致子进程无法执行finally块,如何解决?...-程序员宅基地

文章浏览阅读2.2k次。我在使用multiprocessing库创建进程的时候,发现了这么一个问题:https://docs.python.org/3.5/library/multiprocessing.html#multiprocessing.Process中对于terminate函数的文档中说:Note that exit handlers and finally clauses, etc., will not be..._process.terminate()

TypeScript中的泛型-程序员宅基地

文章浏览阅读180次。在ts中,泛型允许在定义函数、接口类和类型别名时,不预先指定具体类型,而是在使用时指定。以达到增加代码复用性和代码安全性的目的。下面举几个例子。

唯快不破:TCP/IP详解--数据链路层 & 以太网帧格式_trdp数据链路层帧格式-程序员宅基地

文章浏览阅读246次。链路层上最常见的封装就是以太网和IEEE 802封装,这里就使用以太网作为讲解的对象。一、概述 数据链路层属于计算机网络的底层,使用的信道主要有点对点信道和广播信道两种类型。 在TCP/IP协议族中,数据链路层主要有三个目的: 1)为IP模块发送和接收数据 2)为ARP模块发送ARP请求和接收ARP应答 _trdp数据链路层帧格式

随便推点

Node.js毕业设计环保小卫士app(Express+附源码)-程序员宅基地

文章浏览阅读849次,点赞19次,收藏12次。综上所述,环保小卫士APP的开发不仅可以满足公众对环保知识和行动的需求,还可以促进环保事业的发展,提高社会的环保意识和行动水平。通过利用前端技术(HTML+CSS+JavaScript+Vue)、后端技术(Node.js+Express)和数据库(MySQL 5.7),结合开发工具(VSCode和Navicat),我们可以构建一个功能强大、用户友好的环保小卫士APP,为用户提供全面的环保服务和指导。其次,该应用可以促进环保活动的组织和参与,鼓励人们积极参与到环保事业中,共同为环境保护做出贡献。

仓库标签V1.2基站——系统结构-程序员宅基地

文章浏览阅读42次。仓库标签V1.2基站——系统结构

如何使用react框架进行两个html页面的切换?_react页面跳转-程序员宅基地

文章浏览阅读1k次,点赞19次,收藏7次。如何使用react框架进行两个html页面的切换?_react页面跳转

使用Open3D绘制圆形点云_open3d怎么生成圆点状点云-程序员宅基地

文章浏览阅读106次。然后,我们使用三角函数计算每个角度对应的x和y坐标,并在z轴上生成一系列为0的坐标,以形成平面点云。最后,我们将x、y和z坐标合并为一个点云数组,并使用。Open3D是一个用于处理三维数据的开源库,它提供了各种功能,包括点云处理和可视化。在本文中,我们将使用Open3D来绘制一个圆形点云。接下来,我们设置了圆形点云的半径、中心坐标和点的数量。最后,我们创建了一个可视化窗口,并将点云添加到可视化器中。然后,我们运行可视化器,显示圆形点云。,该函数根据给定的半径、中心和点的数量创建一个圆形点云。_open3d怎么生成圆点状点云

枚举类——概述、常用方法、自定义枚举类、Enum创建枚举类-程序员宅基地

文章浏览阅读9k次,点赞13次,收藏27次。一、枚举类的概述1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只一个对象,则可以作为单例模式的实现方式。二、枚举类中的常用方法values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。toString_枚举类

基于52单片机的I2C和OLED的使用_stc52 点亮oled-程序员宅基地

文章浏览阅读506次。基于52单片机的I2C和OLED的使用_stc52 点亮oled