树控件,父子ID 无限级菜单

SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
protected void addTree(int ParentID, TreeNode pNode)
{
//打开数据库 
sqlconn.Open();

//把数据添加到数据表中 
SqlDataAdapter da = new SqlDataAdapter("select * from Departments", sqlconn);
sqlconn.Close();
DataSet dataSet = new DataSet();
da.Fill(dataSet, "order");
DataTable dataTable = dataSet.Tables["order"];
DataView dvTree = new DataView(dataTable);

//过滤数据,选择当前父结点下的所有子结点 
dvTree.RowFilter = "[ParentId] = " + ParentID;


//循环当前所有子结点 
foreach (DataRowView Row in dvTree)
{
TreeNode node = new TreeNode();


//如果当前结点为根结点 
if (pNode == null)
{
//显示结点的文字信息并加入TreeView2中 
node.Text = Row["DeptName"].ToString();
node.Value = Row["DeptId"].ToString();
//添加为根结点 
treeview2.Nodes.Add(node);

//递归调用,把当前结点作为根结点继续添加所有子结点 
addTree(Int32.Parse(Row["DeptId"].ToString()), node);
}


//如果当前结点为子结点 
else
{
//显示结点的文字信息并加入链接地址 
node.Text = Row["DeptName"].ToString();
node.Value = Row["DeptId"].ToString();
//添加为子结点 
pNode.ChildNodes.Add(node);

//递归调用,把当前结点作为根结点继续添加所有子结点 
addTree(Int32.Parse(Row["DeptId"].ToString()), node);
}
}
}

protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
Session["page"] = Request.QueryString["page"];
treeview2.Nodes.Clear();
//调用添加结点函数(根结点的父结点ID为0) 
addTree(0, (TreeNode)null);
treeview2.ExpandDepth = 0;
}
}

转载于:https://www.cnblogs.com/JQlin-c/archive/2012/02/25/2367394.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值