下面是用递归法绑定到树控件的Demo:
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Administrator_SetSubject : System.Web.UI.Page
... {
//public System.Web.UI.WebControls.TreeView TreeView1;
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
TreeViewOperate Obj = new TreeViewOperate(); //操作树类的对像。
dt = new DataTable();
dt = Obj.getTreeViewDataTable(); //得到数据表中所有的数据。getTreeViewDataTable方法略 CreateTree(TreeView1.Nodes, "0"); //调用方未予创建树,0为根目录的父节点,实际是不存在的
}
}
/**//// <summary>
/// 递归法,填充树控件。
/// </summary>
/// <param name="TreeNode">父节点名</param>
/// <param name="printid">父节点ID</param>
private void CreateTree(TreeNodeCollection TreeNode, string printid)
...{
DataView dv = new DataView(this.dt);
dv.RowFilter = "ParentID='" + printid + "'";
TreeNode nodeTemp;
foreach (DataRowView dv1 in dv)
...{
nodeTemp = new TreeNode();
nodeTemp.Value = dv1["ID"].ToString();
nodeTemp.Text = dv1["NodeName"].ToString();
TreeNode.Add(nodeTemp);
this.CreateTree(nodeTemp.ChildNodes, nodeTemp.Value); //循环绑定树
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Administrator_SetSubject : System.Web.UI.Page
... {
//public System.Web.UI.WebControls.TreeView TreeView1;
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
TreeViewOperate Obj = new TreeViewOperate(); //操作树类的对像。
dt = new DataTable();
dt = Obj.getTreeViewDataTable(); //得到数据表中所有的数据。getTreeViewDataTable方法略 CreateTree(TreeView1.Nodes, "0"); //调用方未予创建树,0为根目录的父节点,实际是不存在的
}
}
/**//// <summary>
/// 递归法,填充树控件。
/// </summary>
/// <param name="TreeNode">父节点名</param>
/// <param name="printid">父节点ID</param>
private void CreateTree(TreeNodeCollection TreeNode, string printid)
...{
DataView dv = new DataView(this.dt);
dv.RowFilter = "ParentID='" + printid + "'";
TreeNode nodeTemp;
foreach (DataRowView dv1 in dv)
...{
nodeTemp = new TreeNode();
nodeTemp.Value = dv1["ID"].ToString();
nodeTemp.Text = dv1["NodeName"].ToString();
TreeNode.Add(nodeTemp);
this.CreateTree(nodeTemp.ChildNodes, nodeTemp.Value); //循环绑定树
}
}
}