create table testTree
(
fID int identity(1,1) primary key,
fName varchar(100),
fParentID int
)
/// <summary>
/// 控件绑定
/// </summary>
private void TreeViewBind()
{
DataSet ds = GetSet("select * from testTree");//此处调用了获的DataSet的代码,不加入了,自己写.
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "fParentID=0";
TreeView1.ShowCheckBoxes = TreeNodeTypes.All;
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Text = drv["fName"].ToString();
node.Value = drv["fID"].ToString();
node.Expanded = false;
TreeView1.Nodes.Add(node);
AddReplies(dv, node);
}
}
/// <summary>
/// 递归绑定子节点
/// </summary>
/// <param name="dv"></param>
/// <param name="node"></param>
private void AddReplies(DataView dv, TreeNode node)
{
dv.RowFilter = "fParentID='" + node.Value + "'";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
replyNode.Text = row["fName"].ToString();
replyNode.Value = row["fID"].ToString();
replyNode.Expanded = false;
node.ChildNodes.Add(replyNode);
AddReplies(dv, replyNode);
}
}