数据库结构
显示效果
源码
treeview1.Nodes.Clear();//清理treeview控件
DataSet ds = ....;//获取数据
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
TreeNode note = new TreeNode();
note.Text = "全部";
note.Checked = true;//树节点前面是否显示多选框
FillTree(note, ds.Tables[0], "");//递归方法添加子节点
treeview1.Nodes.Add(note);//数据添加到treeview
treeview1.ExpandAll();//展开treeview
}
//递归方法 node根节点,dt全部数据,parentId上级ID
private void FillTree(TreeNode node, DataTable dt, String parentId)
{
DataRow[] drs = dt.Select("FParentId='" + parentId + "'");//根据上级查询
if (drs != null && drs.Length > 0)
{
foreach (DataRow dr in drs)
{
String id = dr["Id"].ToString();
String name = dr["FName"].ToString();
String decription = dr["FDescription"].ToString();
TreeNode cNode = new TreeNode();创建子节点
cNode.Text = decription;//节点显示数据
cNode.Name = id;//节点名
node.Nodes.Add(cNode);//将子节点添加到上级节点中
FillTree(cNode, dt, id);//将当前节点ID当做参数传递
}
}
}