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 ...
随机推荐
- Quartz框架的使用
专用词汇:scheduler:任务调度器trigger:触发器,用于定义任务调度时间规则job:任务,即被调度的任务misfire:错过的,指本来应该被执行但实际没有被执行的任务调度 Quartz核心 ...
- hdu 1300 Pearls(dp)
Pearls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- C# 中的委托和事件[转自张子扬]
文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式的创建 ...
- GitHub以及Git学习 持续编辑学习中
官网地址: http://www.worldhello.net/gotgithub/01-explore-github/030-explore-github.html 1 加入github, http ...
- oracle子查询
子查询:在一个查询的内部包含另外一个查询. 普通子查询 -- 查询出比7654工资还高的所有雇员的信息 select * from emp e where e.sal > (select sal ...
- "margin塌陷现象"div盒子嵌套盒子外边距合并现象
问题描述:原型大概是“一个div嵌套了两个 div,给main设定了background="pink" ,header1设定background=“red” .header2 设定 ...
- uva 10366 Faucet Flow
题意: 给出l和r,然后从l坐标到r坐标每隔两个位置有一个档板,给出挡板的高度,然后想(-1, 1)中间加水,问什么时候会溢出. 分析: 两边先找到距离(-1,1)最近的最大值L和R.接着比较两个L和 ...
- json输出用法+jquery validate
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- Android学习之DialogFragment
DialogFrament是Android sdk中的对话框基类,开发人员可以针对此类进行扩展.他可以扩展出Android中的多种对话框,比如alertdialog,listdialog,radiod ...
- MS sqlserver 获取某月某年的天数
--定义传入时间 ) set @datetime='2012-02-01' --定义月的天数 declare @dayCountM int --定义年的天数 declare @dayCountY in ...