ASP.NET递归添加树节点
表设计如图:
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递归添加树节点的更多相关文章
- ASP.NET通过递归添加树(Treeview)
先来看看效果,基本上就是这样的. 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个. 下面贴上 各部分的代码 1.PAGE_LOAD载入事件 ...
- Winform递归绑定树节点
/// <summary> /// 绑定树节点 /// </summary> /// <param name="pid"></param& ...
- Winfom递归绑定树节点
/// <summary> /// 绑定树节点 /// </summary> /// <param name="pid"></param& ...
- Winform TreeList递归绑定树节点
/// <summary> /// 绑定树目录 /// </summary> /// <param name="parentId">父ID< ...
- java实现的可以无限级别添加子节点的菜单树
网上大部分菜单树,都是单独用js代码来实现的,这样做的缺点是:用户无法动态的设置菜单项,比如,超级管理员可能需要根据每个用户的权限,赋予他们不同的系统功能,不同的功能对应着不同数量的菜单项. 对于此问 ...
- 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)
初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...
- ligerui_ligerTree_005_动态增加“树”节点
动态添加ligerTree节点:效果图: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 <%@ page language= ...
- ext 树节点操作
ext 树节点操作 tree :树 node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parent ...
- winform treeview 通过节点名称添加子节点
/// <summary> /// 添加人员节点(利用TreeNodeCollection) /// </summary> /// <param name="t ...
随机推荐
- Frameset标签
Frameset标签不能在body中设置. <!DOCTYPE html> <html> <head> <title>框架标签</title> ...
- ILSpy,DLL反编译工具,学习与了解原理的好帮手
你是否一直苦于找到了好的dll却只知道怎么使用而不知道其原理. 你是否在使用一个dll的时候发现它在一些参数时报错了却没法解决. 你是否想成为一个优秀的.net开发,成为一个优秀的系统制造者. 那你需 ...
- C#编程打字指法练习
很惊讶昨晚写的第一篇学习笔记竟然有个评论了,只是今天还是对基础知识提不起精神,还是先看那三本书了解一下程序开发的大概流程吧. 今天不知道怎么闲逛就找到了这个网站,说是专门用于编程练习的,用google ...
- (原)css 响应式媒体查询 模板
@media only screen and (max-width:340px) { html,input{ font-size:80%; } } @media only screen and (ma ...
- Silverlight学习(四) domainservice动态多条件查询
上次讲了silverlight+MVVN+EF的简单框架,能够实现简单的数据CURD,但是多条件动态的查询一直没有实现.在网上查阅了很多资料,发现自己走了很多误区,代码很难调试正确. 这次的查询是基于 ...
- Java日志管理
首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼ 您还未登录 ! 登录 注册 JavaCrazyer的ItEye(codewu.com)技术博客 博客 微博 相册 收藏 留言 关于我 ...
- View和viewController的生命周期
View和viewController的生命周期 一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,View ...
- Node.js学习系列1
概述 最近在刷javascript的技能,觉着nodejs是个不错的入口,作为一个.Net平台的前端工程师学习使用js开发服务端,想想都有点小激动哈哈^_^^_^. 入门 之前开发过ionic,所以对 ...
- UI事件之unload、resize和scroll
unload事件 当页面卸载或用户从当前页面换到其他页面上时,会在window上触发unload事件.根据DOM2级规范规定,unload应该在body上触发,但所有浏览器都实现了在window上触发 ...
- java总结
JUC概况 以下是Java JUC包的主体结构: ? Atomic : AtomicInteger ? Locks : Lock, Condition, ReadWriteLock ? Collect ...