利用TreeView控件生成树状导航的示例
来源:互联网 发布:asics一条街 淘宝店 编辑:程序博客网 时间:2024/05/29 05:56
树型结构表Para_Item
Item_ID(节点ID) Item_Name(节点名) Parent_ID(父结点ID)
1 All 0
2 aaa 1
3 bbb 1
4 aaa_1 2
5 bbb_1 3
//页面初始化
private void Page_Load(object sender, System.EventArgs e)
{
// 定义数据库连接
SqlConnection sqlConection_Tree = new SqlConnection();
//初始化连接字符串
sqlConection_Tree.ConnectionString= Session["ConnString"].ToString();
//打开连接
sqlConection_Tree.Open();
//获取树形目录节点
SqlDataAdapter sqlDataAdapter_Tree = new SqlDataAdapter("select Item_id,Item_name,Parent_ID from Para_item",sqlConection_Tree);
DataSet DataSet_Tree=new DataSet();
sqlDataAdapter_Tree.Fill(DataSet_Tree);
this.ViewState["DataSet_Tree"]=DataSet_Tree;
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
}
//递归添加树的节点 参数ParentID为树的最大父结点
public void AddTree(int ParentID,TreeNode pNode)
{
DataSet DataSet_Tree=(DataSet) this.ViewState["DataSet_Tree"];
DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);
//过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
DataView_Tree.RowFilter = "[Parent_ID] = " + ParentID;
//循环递归
foreach(DataRowView Row in DataView_Tree)
{
//声明节点
TreeNode Node=new TreeNode() ;
//绑定超级链接
Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();
//开始递归
if(pNode == null)
{
//添加根节点
Node.Text = Row["item_name"].ToString();
TreeView_Tree.Nodes.Add(Node);
Node.Expanded=true; //节点状态展开
AddTree(Int32.Parse(Row["item_id"].ToString()), Node); //再次递归
}
else
{
//添加当前节点的子节点
Node.Text = Row["item_name"].ToString();
pNode.Nodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["item_id"].ToString()),Node); //再次递归
}
}
//关闭连接
sqlConection_Tree.Close();
}
生成的树型如下:
All
|-aaa
|-aaa_1
|-bbb
|-bbb_1
Item_ID(节点ID) Item_Name(节点名) Parent_ID(父结点ID)
1 All 0
2 aaa 1
3 bbb 1
4 aaa_1 2
5 bbb_1 3
//页面初始化
private void Page_Load(object sender, System.EventArgs e)
{
// 定义数据库连接
SqlConnection sqlConection_Tree = new SqlConnection();
//初始化连接字符串
sqlConection_Tree.ConnectionString= Session["ConnString"].ToString();
//打开连接
sqlConection_Tree.Open();
//获取树形目录节点
SqlDataAdapter sqlDataAdapter_Tree = new SqlDataAdapter("select Item_id,Item_name,Parent_ID from Para_item",sqlConection_Tree);
DataSet DataSet_Tree=new DataSet();
sqlDataAdapter_Tree.Fill(DataSet_Tree);
this.ViewState["DataSet_Tree"]=DataSet_Tree;
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
}
//递归添加树的节点 参数ParentID为树的最大父结点
public void AddTree(int ParentID,TreeNode pNode)
{
DataSet DataSet_Tree=(DataSet) this.ViewState["DataSet_Tree"];
DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);
//过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
DataView_Tree.RowFilter = "[Parent_ID] = " + ParentID;
//循环递归
foreach(DataRowView Row in DataView_Tree)
{
//声明节点
TreeNode Node=new TreeNode() ;
//绑定超级链接
Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();
//开始递归
if(pNode == null)
{
//添加根节点
Node.Text = Row["item_name"].ToString();
TreeView_Tree.Nodes.Add(Node);
Node.Expanded=true; //节点状态展开
AddTree(Int32.Parse(Row["item_id"].ToString()), Node); //再次递归
}
else
{
//添加当前节点的子节点
Node.Text = Row["item_name"].ToString();
pNode.Nodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["item_id"].ToString()),Node); //再次递归
}
}
//关闭连接
sqlConection_Tree.Close();
}
生成的树型如下:
All
|-aaa
|-aaa_1
|-bbb
|-bbb_1
- 利用TreeView控件生成树状导航的示例
- VS2005利用TreeView控件和递归函数动态生成树状菜单
- 树状图 TreeView控件的使用
- 站点导航控件TreeView
- 站点导航TreeView控件
- 树状图 TreeView控件--访问控件的所有节点
- 利用.net 2.0中的TreeView控件与数据库绑定,生成无限级的树目录
- 利用TreeView控件动态生成无限级树
- 利用TreeView控件动态生成无限级树
- 利用TreeView控件动态生成无限级树
- 利用TreeView控件动态生成无限级树
- 利用TreeView控件动态生成无限级树
- 利用TreeView控件动态生成无限级树(转)
- TreeView控件中结点的自动生成
- 通过DataSet的递归操作TreeView生成树状图
- TreeView 控件树状控件的填充VB以及 VS.NET C#源代码
- 利用JQUERY的TREEVIEW插件生成无限极树
- 利用JQUERY的TREEVIEW插件生成无限极树
- 页面逻辑与页面表现的分离,让你的Ajax编程更加模块化
- j2se学习心得
- 易写易库(EXEK)进展情况(2)(2008.8.23)
- 简单文本分割器V1.0发布(包括源码)
- 组策略-Windows防火墙
- 利用TreeView控件生成树状导航的示例
- RIS
- 从番茄事件看版权保护
- 查看远程计算机进程-tasklist
- 获取远程MAC地址-ARP
- 常用ARP命令
- 暑假结束了 新学期开始了
- McAfee Common Management Agent (CMA)扫盲
- js中innerHTML与innerText的用法与区别