表设计如图:

id        title         parentid

1         asp.net   0

2         c#           0

3         c#_0       2

4         c#_1       3

5         c#_2       4

页面中添加一个TreeView控件

写添加节点方法:

private void AddNode(int id, TreeNode parentnode)

{

string sql = "select * from menu";//sql 语句

DataTable table = DB.GetDB(sql);//获取数据

DataView view = new DataView(table);//把表数据添加到自定义视图中

view.RowFilter = "parentid="+id;//设置视图查询条件

foreach (DataRowView row in view)//遍历视图中数据

   {              TreeNode node = new TreeNode();

     node.Text = row[1].ToString();

int newid = Convert.ToInt32(row[0]);

if (parentnode != null)            
                    {

node.Expanded = false;

parentnode.ChildNodes.Add(node);

AddNode(newid, node);//递归查找节点

}

else

{

TreeView1.Nodes.Add(node);

AddNode(newid, node);

}

}

}

DB类中GetDB()方法:

public static SqlConnection sqlconn()

{         string sqlconnstr = "database=menutree;data source=.;uid=sa;pwd=123";

SqlConnection conn = new SqlConnection(sqlconnstr);         return conn;     }

public static DataTable GetDB(string sql)

{         SqlConnection connection = sqlconn();

SqlCommand comm = new SqlCommand(sql, connection);

SqlDataAdapter ad = new SqlDataAdapter(comm);

DataTable table = new DataTable();

ad.Fill(table);

return table;     }

调用代码:

protected void Page_Load(object sender, EventArgs e)

{                if (!IsPostBack)

{             TreeView1.Nodes.Clear();

AddNode(0, (TreeNode)null);        
}     }

完成!

ASP.NET递归添加树节点的更多相关文章

  1. ASP.NET通过递归添加树(Treeview)

    先来看看效果,基本上就是这样的. 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个. 下面贴上 各部分的代码 1.PAGE_LOAD载入事件 ...

  2. Winform递归绑定树节点

    /// <summary> /// 绑定树节点 /// </summary> /// <param name="pid"></param& ...

  3. Winfom递归绑定树节点

    /// <summary> /// 绑定树节点 /// </summary> /// <param name="pid"></param& ...

  4. Winform TreeList递归绑定树节点

    /// <summary> /// 绑定树目录 /// </summary> /// <param name="parentId">父ID< ...

  5. java实现的可以无限级别添加子节点的菜单树

    网上大部分菜单树,都是单独用js代码来实现的,这样做的缺点是:用户无法动态的设置菜单项,比如,超级管理员可能需要根据每个用户的权限,赋予他们不同的系统功能,不同的功能对应着不同数量的菜单项. 对于此问 ...

  6. 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)

    初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...

  7. ligerui_ligerTree_005_动态增加“树”节点

    动态添加ligerTree节点:效果图: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 <%@ page language= ...

  8. ext 树节点操作

    ext 树节点操作 tree :树    node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parent ...

  9. winform treeview 通过节点名称添加子节点

    /// <summary> /// 添加人员节点(利用TreeNodeCollection) /// </summary> /// <param name="t ...

随机推荐

  1. stl_map,set 用法

    set: 集合a,b加起来,去重 hdu 1406 #include <iostream> #include<cstdio> #include<set> using ...

  2. 可执行文件(ELF)格式的理解

    摘自http://www.cnblogs.com/xmphoenix/archive/2011/10/23/2221879.html 可执行文件(ELF)格式的理解 ELF(Executable an ...

  3. hdu 1575 Tr A(矩阵快速幂乘法优化算法)

    Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n ...

  4. odbc连接数据库

    using System; using System.Collections.Generic; using System.Text; using Console = System.Console; u ...

  5. Linux学习3——磁盘文件管理系统与压缩和打包操作

    一.写在前面  本节将对Linux的磁盘文件系统.文件的压缩打包等操作进行简要介绍. 二.完成目标 1.了解磁盘文件系统的接本知识 2.操作文件和目录的相关命令 3.文件系统的简单操作命令 4.Lin ...

  6. Http权威指南笔记(一) URI URL URN 关系

    定义 URI:统一资源标识符(Uniform Resource Indentifier)用来标识服务器上的资源. URL:统一资源定位符(Uniform Resouce Locator)是资源标识符最 ...

  7. Window2003、xp远程备份数据库文件(xcopy+rar+pscp)

    Window2003.xp远程备份数据库文件 xcopy+rar+pscp .bat脚本 Eg: xcopy d:\dbtest\*.* d:\dbtemp\ /y D:\backup\Rar.exe ...

  8. mysql中select distinct的用法

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但 往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...

  9. XML字符串转化json

    public static String XMLTOJSON(String XMLContent,String tag) {  XMLSerializer xmlSerializer = new XM ...

  10. jQuery渐变弹出层

    css: [css]#race{display:block;width:200px;height:50px;line-height:50px;text-align:center;background: ...