using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace CreateTreeS
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataTable dtTree = null;
private DataView dv = null;
private void CreateTable()
{
dtTree = new DataTable("TreeDBInfo");
dtTree.Columns.Add(new DataColumn("TypeID", typeof(int)));
dtTree.Columns.Add(new DataColumn("TypeName", typeof(string)));
dtTree.Columns.Add(new DataColumn("TypeParentID", typeof(int)));
dtTree.Rows.Add(new object[] { 1, "Parent1", 0 });
dtTree.Rows.Add(new object[] { 2, "Parent2", 0 });
dtTree.Rows.Add(new object[] { 3, "Parent3", 0 });
dtTree.Rows.Add(new object[] { 4, "Child1", 1 });
dtTree.Rows.Add(new object[] { 5, "Child2", 1 });
dtTree.Rows.Add(new object[] { 6, "Child3", 2 });
dtTree.Rows.Add(new object[] { 7, "GrandChild1", 4 });
dtTree.Rows.Add(new object[] { 8, "GrandChild2", 4 });
dtTree.Rows.Add(new object[] { 9, "GrandChild3", 5 });
}
private void CreateTree()
{
dv = dtTree.DefaultView;
dv.Sort = "TypeParentID ASC";
DataRowView[] arrDRV = dv.FindRows(0);
if (arrDRV.Length == 0)
return;
TreeNode tnNew = null;
foreach (DataRowView drv in arrDRV)
{
tnNew = treeView1.Nodes.Add(drv.Row["TypeName"].ToString());
tnNew.Tag = drv.Row["TypeID"].ToString();
CreateTreeNode(ref tnNew);
}
}
private void CreateTreeNode(ref TreeNode tnParent)
{
DataRowView[] arrDRV = dv.FindRows(tnParent.Tag);
if (arrDRV.Length == 0)
return;
TreeNode tnNew = null;
foreach (DataRowView drv in arrDRV)
{
tnNew = tnParent.Nodes.Add(drv.Row["TypeName"].ToString());
tnNew.Tag = drv.Row["TypeId"].ToString();
CreateTreeNode(ref tnNew);
}
}
private void Form1_Load(object sender, EventArgs e)
{
CreateTable();
CreateTree();
}
}
}
用数据库的数据动态产生TreeView的节点。 转的。
最新推荐文章于 2024-05-04 09:38:05 发布