表:
perid 父ID, id 主键(子ID)
____________________________________
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection Conn = new SqlConnection(logicClass.strConn()))
{
Conn.Open();
string strsql = "select preid,id,name,keynum,ctime,orderid from doctree ";
SqlDataAdapter sa = new SqlDataAdapter(strsql, Conn);
DataSet ds = new DataSet();
sa.Fill(ds);
this.ViewState["ds"] = ds;
Conn.Dispose();
Conn.Close();
}// end using
}
//递归添加树的节点
public void AddTree(int ParentID, TreeNode pNode)
{
DataSet ds = (DataSet)this.ViewState["ds"];
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[preid] = " + ParentID;
dvTree.Sort = "orderid";
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{ //添加根节点
Node.Text = Row["name"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
Node.Text = Row["name"].ToString();
// pNode.Nodes.Add(Node);
pNode.ChildNodes.Add(Node);
Node.Expanded = true;
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
}
}