[ASP.net]TreeView(1)(一次性递归所有节点)
2005-03-26 16:46
856 查看
数据库Table
==============================================
int key int nvarchar(100) nvarchar(100) nvarchar(100) nvarchar(100)
NODE_ID PARENT_ID NODE_NAME ADDRESS IMAGE_URL SELECT_IMAGE_URL
1 0 node_1 http://* *.gif *.gif
2 1 node_1_1 http://* *.gif *.gif
3 2 node_1_1_1 http://* *.gif *.gif
4 0 node_2 http://* *.gif *.gif
5 4 node_2_1 http://* *.gif *.gif
6 5 node_2_1_1 http://* *.gif *.gif
7 0 node_3 http://* *gif *.gif
8 7 node_3_1 http://* *.gif *.gif
==============================================
代码程序:
==============================================
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Components;
using Microsoft.Web.UI.WebControls;
namespace Register
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView tvList;
private SqlControl objSqlControl;
private DataTable objDataTable;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if ( ! Page.IsPostBack )
{
objSqlControl = new SqlControl();
TreeNode node = new TreeNode();
objDataTable = objSqlControl.SelectData(); //取得所有数据得到DataTable
this.CreateTree( tvList.Nodes,"0" ); //建立节点
}
}
private void CreateTree( TreeNodeCollection node,string parent_id )
{
DataView dvList = new DataView( this.objDataTable );
dvList.RowFilter = "PARENT_ID='" + parent_id + "'"; //过滤父节点
TreeNode nodeTemp;
foreach ( DataRowView dv in dvList )
{
nodeTemp = new TreeNode();
nodeTemp.ID = dv["NODE_ID"].ToString(); //节点ID
nodeTemp.Text = dv["NODE_NAME"].ToString(); //节点名称
nodeTemp.NavigateUrl = dv["ADDRESS"].ToString(); //节点链接地址
nodeTemp.ImageUrl = dv["IMAGE"].ToString(); //节点图片(未展开)
nodeTemp.SelectedImageUrl = dv["IMAGE_EX"].ToString(); //节点图片(展开)
nodeTemp.Target = "_parent"; //节点链接Target
node.Add( nodeTemp ); //加入节点
this.CreateTree( nodeTemp.Nodes,nodeTemp.ID ); //递归
}
}
=================================================
==============================================
int key int nvarchar(100) nvarchar(100) nvarchar(100) nvarchar(100)
NODE_ID PARENT_ID NODE_NAME ADDRESS IMAGE_URL SELECT_IMAGE_URL
1 0 node_1 http://* *.gif *.gif
2 1 node_1_1 http://* *.gif *.gif
3 2 node_1_1_1 http://* *.gif *.gif
4 0 node_2 http://* *.gif *.gif
5 4 node_2_1 http://* *.gif *.gif
6 5 node_2_1_1 http://* *.gif *.gif
7 0 node_3 http://* *gif *.gif
8 7 node_3_1 http://* *.gif *.gif
==============================================
代码程序:
==============================================
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Components;
using Microsoft.Web.UI.WebControls;
namespace Register
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView tvList;
private SqlControl objSqlControl;
private DataTable objDataTable;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if ( ! Page.IsPostBack )
{
objSqlControl = new SqlControl();
TreeNode node = new TreeNode();
objDataTable = objSqlControl.SelectData(); //取得所有数据得到DataTable
this.CreateTree( tvList.Nodes,"0" ); //建立节点
}
}
private void CreateTree( TreeNodeCollection node,string parent_id )
{
DataView dvList = new DataView( this.objDataTable );
dvList.RowFilter = "PARENT_ID='" + parent_id + "'"; //过滤父节点
TreeNode nodeTemp;
foreach ( DataRowView dv in dvList )
{
nodeTemp = new TreeNode();
nodeTemp.ID = dv["NODE_ID"].ToString(); //节点ID
nodeTemp.Text = dv["NODE_NAME"].ToString(); //节点名称
nodeTemp.NavigateUrl = dv["ADDRESS"].ToString(); //节点链接地址
nodeTemp.ImageUrl = dv["IMAGE"].ToString(); //节点图片(未展开)
nodeTemp.SelectedImageUrl = dv["IMAGE_EX"].ToString(); //节点图片(展开)
nodeTemp.Target = "_parent"; //节点链接Target
node.Add( nodeTemp ); //加入节点
this.CreateTree( nodeTemp.Nodes,nodeTemp.ID ); //递归
}
}
=================================================
相关文章推荐
- [ASP.net]TreeView(1)(一次性递归所有节点)
- asp.net treeview遍历递归获取当前节点所有子级(含子级的子级)
- ASP.NET 2.0 TreeView中用JavaScript实现选择子接点CheckBox是自动选择上父节点(或者所有父节点)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- TreeView(1)(一次性递归所有节点)
- TreeView(一次性递归所有节点)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- 【原】用使用JavaScript展开/折叠TreeView中所有节点(Expand and Collapse All Nodes of asp.net Treeview on the client with javascript)
- TreeView(一次性递归所有节点)
- asp.net TreeView递归循环子节点生成树形菜单实例
- 使用JavaScript展开/折叠TreeView中所有节点(Expand and Collapse All Nodes of asp.net Treeview on the client with javascript)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)2005-12-23更新
- ASP.NET中的treeview中如何获取该子节点的所有父节点
- asp.net 递归删除文件夹及其子文件夹和所有文件[转]
- ASP.NET treeview 节点上下移动
- asp.net中TreeView控件的递归呈现方法
- 递归输出ASP.NET页面所有控件的类型和ID的代码