TreeView树形控件递归绑定数据库里的数据

TreeView树形控件递归绑定数据库里的数据。

第一步:数据库中查出来的表,字段名分别为UNAME(显示名称),DID(关联数据),UTYPE(类型)

第二步:前台代码

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tree.aspx.cs" Inherits="Maticsoft.Web.tree" %>
 2
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <title></title>
 8     <script type="text/javascript">
 9         function show(msg) {
10             alert(msg);
11         }
12     </script>
13
14 </head>
15 <body>
16
17     <form id="form1" runat="server">
18     <div>
19         <asp:TreeView ID="treeT" runat="server">
20         </asp:TreeView>
21
22
23     </div>
24     </form>
25 </body>
26 </html>

第三步:后台代码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 using System.Data;
 8 using System.Data.SqlClient;
 9
10 namespace Maticsoft.Web
11 {
12     public partial class tree : System.Web.UI.Page
13     {
14         Maticsoft.BLL.G_USERS bll = new BLL.G_USERS();
15         Maticsoft.Model.G_USERS model = new Model.G_USERS();
16
17         protected void Page_Load(object sender, EventArgs e)
18         {
19            //根节点的条件
20             BindTree("8");
21         }
22
23         #region 绑定父节点(第一级)
24         private void BindTree(string pid)
25         {
26
27             DataSet ds = bll.GetList("a.status > -1 and utype=" + pid);
28             if (ds.Tables[0].Rows.Count > 0)
29             {
30                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
31                 {
32                     TreeNode node = new TreeNode();
33                     node.Text = ds.Tables[0].Rows[i]["uName"].ToString();
34                     node.Target = ds.Tables[0].Rows[i]["dID"].ToString();
35                     this.treeT.Nodes.Add(node);
36                     BindNode(node);
37                 }
38             }
39         }
40         #endregion
41
42         #region 绑定子节点
43
44         #endregion
45         private void BindNode(TreeNode nd)
46         {
47             DataSet ds = bll.GetList("a.status>-1 and  a.id=b.user_id and b.fid=" + Convert.ToString(nd.Target) + " order by b.shorder asc ");
48             for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
49             {
50                 TreeNode node = new TreeNode();
51                 node.Text = ds.Tables[0].Rows[i]["uName"].ToString();
52                 node.Target = ds.Tables[0].Rows[i]["dID"].ToString();
53                 nd.ChildNodes.Add(node);
54
55                 //判断是否到最底层节点
56                 if (ds.Tables[0].Rows[i]["utype"].ToString() != "0")
57                 {
58                     BindNode(node);
59                 }
60             }
61         }
62
63
64
65
66     }
67 }

效果功能图:

另一种一步到位:(数据太大会超时)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 using System.Data;
 8 using System.Data.SqlClient;
 9
10 namespace tree
11 {
12     public partial class tree : System.Web.UI.Page
13     {
14         protected void Page_Load(object sender, EventArgs e)
15         {
16             BindTree("8");
17         }
18         #region 绑定父节点(第一级)
19         private void BindTree(string pid)
20         {
21             DataSet ds = GetData(pid);
22             if (ds.Tables[0].Rows.Count > 0)
23             {
24                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
25                 {
26                     TreeNode node = new TreeNode();
27                     node.Text = ds.Tables[0].Rows[i]["UName"].ToString();
28                     node.Target = ds.Tables[0].Rows[i]["DID"].ToString();
29                     this.TreeView1.Nodes.Add(node);
30                     BindNode(node);
31                 }
32             }
33         }
34         #endregion
35
36         #region 绑定子节点
37         private void BindNode(TreeNode nd)
38         {
39             DataSet ds = GetData(Convert.ToString(nd.Target));
40             for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
41             {
42                 TreeNode node = new TreeNode();
43                 node.Text = ds.Tables[0].Rows[i]["UName"].ToString();
44                 node.Target = ds.Tables[0].Rows[i]["DID"].ToString();
45                 nd.ChildNodes.Add(node);
46                 if (ds.Tables[0].Rows[i]["utype"].ToString() != "0")
47                 {
48                     BindNode(node);
49                 }
50             }
51         }
52         #endregion
53
54         #region 将父级下的子级查询出来,并返回一张虚拟表
55         private DataSet GetData(string pid)
56         {
57             string connstr = "server=192.168.1.74;database=dsoa;uid=dsoa;pwd=dreamsoft;";
58             SqlConnection con = new SqlConnection(connstr);
59             con.Open();
60             string sqlstr =string.Empty;
61             if (pid == "8")
62             {
63                 sqlstr = "select a.uname, b.id did, utype from g_users A left join G_DEPT B on a.id=b.user_id where a.status>-1 and utype =" + pid;
64             }
65             else
66             {
67                 sqlstr = "select a.uname,b.id did, utype from g_users A,G_DEPT B where a.status>-1 and  a.id=b.user_id and b.fid=" + pid + " order by b.shorder asc ";
68             }
69             SqlDataAdapter da = new SqlDataAdapter(sqlstr,con);
70             DataSet ds = new DataSet();
71             da.Fill(ds);
72             return ds;
73         }
74         #endregion
75
76     }
77 }
时间: 2024-08-10 09:23:25

TreeView树形控件递归绑定数据库里的数据的相关文章

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题 分类: SharePoint2012-01-16 14:24 1295人阅读 评论(1) 收藏 举报 sharepoint2010queryurllistborder SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题 1.实现效果如下: 点击各个节点进入相应的链接 2.测试列表: 3.

基于Bootstrap的JQuery TreeView树形控件,数据支持json字符串、list集合(MVC5)

BZ第一次自己写博客,心情好激动!!BZ也是小菜,本文如果有什么不对的地方,希望大神们多多指教,也希望和我一样的小菜多多学习.BZ在这里谢过各位. BZ最近看了很多博友的有关TreeView的博客,发现很多都是WebForm.JQuery的.因为BZ使用的是MVC的原因,所以决定写一写关于MVC和Bootstrap的TreeView. PS:基于Bootstrap的JQuery TreeView树形控件,JQuery版本为2.1.1(下载网上的基于Bootstrap的JQuery TreeVie

共有21款 jQuery 树形控件开源软件,第1页

JQuery Tree 插件 zTree zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成 和 Ajax 异步加载 两种方式 支持多种事件响应及反馈 支持 Tree...更多zTree信息 最近更新: [每日一博]Ztree+PHP 无限极节点递归查找节点 发布于 1年前 jQuery的Tree控件 jstree j

Web应用程序开发,基于Ajax技术的JavaScript树形控件

感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项. 目前市场上常见的JavaScript框架及组件库中均包含自己的树形控件,例如jQuery.Dojo.YUI.Ext JS等,还有一些独立的树形控件,例如dhtmlxTree等,这些树形控件完美的解决了层次数据的展示问题. 展示离不开数据,树形控件主要

js树形控件—zTree使用总结(转载)

0 zTree简介 树形控件的使用是应用开发过程中必不可少的.zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 0.0 zTree的特点 最新版的zTree将核心代码按照功能进行了分割,不需要的代码可以不用加载,如普通使用只需要加载核心的jquery.ztree.core-3.5.js,需要使用勾选功能加载jquery.ztree.excheck-3.5.min.js,需要使用编辑功能加载jquery.ztree.e

Qt树形控件QTreeView使用1——节点的添加删除操作 复选框的设置

QtreeView是ui中最常用的控件,Qt中QTreeWidget比QTreeView更简单,但没有QTreeView那么灵活(QTreeWidget封装的和MFC的CTreeCtrl很类似,没有mvc的特点). 1. QStandardItemModel在QTreeView中的使用 使用QTreeView的对应模型是QStandardItemModel,这个是Qt对应ui界面最有用的模型,它可以用于树形控件.列表控件.表格控件等等和条目有关的控件.QStandardItemModel用于列表

Android 打造任意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目需要在APP上显示个树形控件,比如展示一个机构组织,最上面是boss,然后各种部门,各种小boss,最后各种小罗罗:整体是一个树形结构:遇到这样的情况,大家可能回去百度,因为层次多嘛,可能更容易想到ExpandableListView , 因为这玩意层级比Listview多,但是E

asp.net 树形控件 $.fn.zTree.init

在网页中通过jquery脚本来构筑树形控件将是一个不错的选择,比如有一个文本框,当鼠标点击的时候,像弹出一个下拉框一样弹出一个树形控件,这似乎是一个不错的控制.下面主要讲讲这种树形控件的实现.为了能使用这种控件,需要中网上下载这个控件的脚本,然后引用到页面中 <script src="/Scripts/jquery.ztree.core-3.5.js"></script> <script src="/Scripts/jquery.ztree.ex

Android 打造随意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目须要在APP上显示个树形控件,比方展示一个机构组织,最上面是boss.然后各种部门.各种小boss,最后各种小罗罗.总体是一个树形结构.遇到这种情况,大家可能回去百度.由于层次多嘛,可能更easy想到ExpandableListView , 由于这玩意层级比Listview多.可是