表设计如图:

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. C#中Linq延迟执行问题

    本文来自:http://msdn.microsoft.com/zh-cn/library/bb399393(v=vs.110).aspx http://www.cnblogs.com/zhanglin ...

  2. 实用的JavaScript技巧、窍门和最佳实践

    JavaScript是世界上第一的编程语言,它是Web的语言,是移动混合应用(mobile hybrid apps)的语言(比如 PhoneGap或者 Appcelerator),是服务器端的语言(比 ...

  3. JS获取客户端IP地址、MAC和主机名七种方法

    一.使用JS获取客户端IP的几个方法方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000).获取客户端IP代码:<HTML><HEAD ...

  4. Oozie入门

    作者 Boris Lublinsky, Michael Segel ,译者 侯伯薇 发布于 2011年8月18日 |注意:QCon全球软件开发大会(北京)2016年4月21-23日,了解更多详情! 分 ...

  5. mesos博客集

    http://dongxicheng.org/category/apache-mesos/

  6. C#整理1——进制转换

    进制转换:二进制,八进制,十进制,十六进制. (一)二进制转十进制: 1.写2 2.标指数,从右向左,从0开始依次标记 3.乘系数,一一对应. 4.相加. 例:二进制数1101转十进制数* 1.2   ...

  7. SVG彩虹字

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. AjaxHelper学习,ajax,microsoft,mvc,asp.net

    index.cshtml @using (Ajax.BeginForm("ContentAjax", new AjaxOptions { UpdateTargetId = &quo ...

  9. iOS开发那些事儿(六)Git分之策略

    git 分支策略 将要介绍的这个模型不会比任何一套流程内容多,每个团队成员都必须遵守,这样便于管理软件开发过程. 既分散又集中 我们使用的,且与这个分支模型配合的非常好的库,他有一个“真正”的中央仓库 ...

  10. Scala入门指南与建议

    最近在学习使用Scala语言做项目,感觉这门语言实在是太优美了!作为一个本科数学.研究生机器学习专业的混合人才(哈哈),这门语言真的是满足了普通计算机编程(告诉计算机怎么做)和函数式编程(告诉计算机做 ...